密封部分类

11

你能为一个 sealed 的类创建一个 partial 类型的文件吗?


14
你试过吗? - Jay Riggs
1
打开 Visual Studio 并尝试它。 - Andy_Vulhop
1
由于将类分割为多个文件与继承之间没有联系,所以我的猜测是可以的,但正如Jay所说,请试一下。 - Rune FS
4
“尝试很容易”不是不在这里提问的理由。 - H H
2
在我的情况下,我正在使用partial sealed,但这是无法编译的(正确用法应该是sealed partial)。 - talles
4个回答

27

sealed关键字表示该类不能被继承,但不影响该类代码的结构。 partial关键字允许将一个类分成多个文件。

在下面的示例中,类A可以编译通过,而类B由于A是sealed且不允许继承而无法编译。

public sealed partial class A   { private int x; }

public sealed partial class A   { private int y; }

public class B : A  {   }

1
如果在分割文件中,一个类定义被标记为partial而另一个没有被标记,那么哪个优先级更高? - Ian R. O'Brien

5

看起来编译成功了。

sealed partial class Class1
{
    public void MyMethod() { }
}

partial class Class1
{
    public void MyMethod2() { }
}  

我认为这个答案更具有信息性,因为类的签名将在编译时合并。因此,只需要指定一个部分作为sealed即可。要确定类是否被sealed,您需要检查其所有部分。 - Maxim

2
是的。密封类只阻止继承。部分类不会被继承,它们在编译时合并为一个类。

1

是的,您可以创建一个被封闭的部分类。

例如:公共的被封闭的部分类员工。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接