c# - C#/.NET 中的仅命名空间类可见性?

标签 c# .net

在 C# 中,您能否使一个类只在其自己的命名空间内可见,而不存在于不同的程序集中?这对于不应在别处使用的典型帮助程序类似乎很有用。 (即 Java 所谓的包私有(private)类)

最佳答案

您可以将类设为内部,但这只会阻止程序集 之外的任何人使用该类。但是您仍然必须为要使用的每个命名空间创建一个单独的程序集。我假设这就是您不想这样做的原因。

让 C# 编译器强制命名空间可见性

这里有一篇文章 ( Namespace visibility in C# ) 展示了一种使用部分类作为“假命名空间”形式的方法,您可能会发现它很有用。

作者指出这并不是完美的,他讨论了缺点。主要问题是 C# 设计者设计 C# 以这种方式工作。这严重偏离了 C#/.NET 中预期的编码实践,而 C#/.NET 是 .NET Frameworks 之一最大的优势。

这是一个巧妙的技巧……现在不要这样做。

关于c# - C#/.NET 中的仅命名空间类可见性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1223873/

相关文章:

javascript - 在 asp.net c# 中使用 JavaScript 过滤时保存 gridview 的状态

c# - WPF MergedDictionaries - 值不能为 Null - 参数名称 : item

.net - 重复调用 ConfigurationManager.AppSettings 以获取 appsetting 值的性能问题?

.net - 在 C++ 程序和 .NET 程序之间进行远程调用的最简单方法

c# - NET 2.0 项目从 VS2017 构建,但不是从命令行构建

c# - C#/F# 中基于约束的类型推断

c# - 您可以使用基于约定的路由来声明采用多个参数的路由吗?

c# - asp.net中动态生成Button

javascript - 从 JavaScript 运行 WScript.Shell.Run() 时获取 "Wrong number of arguments or invalid property assignment"

c# - CultureInfo.Name 属性