|
|
1
15
有一个解决办法,但你可能不喜欢。
而不是使用
之前:
后:
此构造与名称空间类似,可以跨同一项目中的多个文件。但与名称空间不同,它不能“转义”您的项目(其他项目不能定义内部的其他成员
还有一个额外的优点,你可以有实用方法
seem to have no class
内部代码
缺点是,要在假名称空间之外使用非私有类,必须在内部引用它们
这可以通过为类使用别名来减轻:
但是你必须为你想要使用的每个非私有类做这个。 更新
有趣的是,C 6将
static using statements
,这可以有效地改进此建议以使用
希望它能像这样工作:
就好像
|
|
|
2
21
允许类对名称空间是私有的将不会达到有意义的保护级别。 世界上的任何程序集都可以简单地引用您的dll,并开始在命名空间中编写访问您所谓的私有类的代码。 我想这可能是你从微软那里得到的答案。 |
|
|
3
11
您可以创建一个私有类,作为另一类型的成员:
和
在最外层(即命名空间中)
|
|
|
4
2
您可以定义一个私有类,但它只能由它的包含类使用。
如果希望类只在特定程序集中可见(dll/exe/etc),则应将其声明为
|
|
|
5
1
是的,但是您可以通过内部类和 internalsvisibletoAttribute 如果命名空间跨多个程序集拆分。 还要记住,另一个类中的一个类可以是外部类的私有类。为此,可以将外部类视为命名空间。 |
|
|
6
1
所以我想你想这么做
如果是的话。那么foo将服务于什么目的呢?在命名空间中,您可以比内部更严格地使用该类,如果我可以这样做,我将在何处使用它。 这就是为什么要进行编译时验证的原因。 现在,在一个公共类中,有一个私有类是有意义的。我无法更好地解释这件事 Private inner classes in C# - why aren't they used more often? . |
|
jlandercy · PostgreSQL参数化窗口大小 8 年前 |