在 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/