部分类和访问修饰符问题

时间:2014-08-20 07:57:10

标签: c# .net access-modifiers partial-classes

根据MSDN Documentation部分类:

  

所有部分必须具有相同的辅助功能,例如公开私人等。

但是如果你创建一个WindowsForm应用程序,你将在两个部分类中使用默认的Form类。

背后的代码:

public partial class Form1 : Form
{
    ...
}

和设计师:

partial class Form1
{
    ...
}

访问修饰符不同,但会编译。

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:17)

如果未在分部类的一部分中指定访问修饰符,则它使用与其他部分相同的访问修饰符。


C#5规范的相关部分:§10.2.2

  

当部分类型声明包含可访问性规范(public,protected,internal和private修饰符)时,它必须与包含可访问性规范的所有其他部分一致。如果部分类型的任何部分都不包含可访问性规范,则为该类型提供适当的默认可访问性(第3.5.1节)。

因此规范说,如果指定了,则可访问性必须与其他部分一致;换句话说,它不必在每个部分中指定。尽管如此,措辞可能会变得不那么模糊......