例如:
internal class C
{
public void M()
{
Console.WriteLine("foo");
}
}
Run Code Online (Sandbox Code Playgroud)
对我来说,这是一个 " 任何人都可以访问的方法,无论生成在只能从同一程序集中的代码访问的类中的程序集 ".
我对编译器的经验告诉我,如果我做了类似的事情并且没有得到警告,那么可能有一个合理的理由.
所以,我想也是
(如果是2,这不是试图抱怨它 - 我只想了解)
Eri*_*ert 10
对我来说,这是一个"任何人都可以访问的方法,无论生成在只能从同一程序集中的代码访问的类中的程序集".
对我来说,这意味着"C的可访问性域仅限于此程序集; M 的可访问性域是其容器的可访问域的无限制子集,C ".
"公共"对我来说就是因为这就是规范所说的意思.如果您对此有疑问或担忧,我建议您阅读涵盖可访问域的规范部分.
该internal关键字即将接入限制M()到仅在装配中进行的呼叫C驻留.
public只是意味着任何人都可以访问该成员 public我不知道或关心在类层次结构中更高的限制,也不应该关心.
换句话说,它是"按设计".当你public加入一个方法时,编译器假定你已经知道,如果你对类本身施加了进一步的限制,那么你必须知道你在做什么.