在 java 中,您有包级别的保护,可确保类仅在包中可用。
C# 中的命名空间或多或少类似于包。但是 C# 没有用于保护命名空间中的类的保护级别。
这有什么具体原因吗?
在 java 中,您有包级别的保护,可确保类仅在包中可用。
C# 中的命名空间或多或少类似于包。但是 C# 没有用于保护命名空间中的类的保护级别。
这有什么具体原因吗?
没有这样的访问修饰符:最接近的修饰符是internal
,但保护单元是类所在的程序集,而不是其命名空间。
有人可能会争辩说,使用 实现类似级别的控制是可能的internal
,因为这两种限制都可以防止外人访问您的库的实现细节。唯一对它有影响的人是你,图书馆的作者,你完全可以控制要公开什么,要隐藏什么。从本质上讲,这意味着如果您不想在其命名空间之外使用某个类,只需避免使用它即可;如果类是internal
,其他人也不能使用该类。
在 .NET 中有程序集(dll 或 exe 文件),您可以使用internal
修饰符来限制仅在同一程序集中的访问