部分类和访问修饰符问题

本文关键字:问题 访问 分类 | 更新日期: 2023-09-27 18:18:43

根据MSDN文档的部分类:

所有部分必须具有相同的可访问性,例如publicprivate,等等。

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

后面的代码:

public partial class Form1 : Form
{
    ...
}

和设计者:

partial class Form1
{
    ...
}

访问修饰符不同,但是可以编译。

我错过了什么吗?

部分类和访问修饰符问题

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


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

当部分类型声明包含可访问性规范(公共、受保护、内部和私有修饰符)时,它必须与包含可访问性规范的所有其他部分一致。如果部分类型的任何部分都不包含可访问性规范,则该类型被赋予适当的默认可访问性(§3.5.1)。

所以规范说,如果指定了,则可访问性必须与其他部分一致;换句话说,它不需要在每个部分都指定。不过,措辞可能会变得不那么模棱两可……