2010-08-25 86 views
9

您可以爲sealed的類製作partial類文件嗎?密封部分類

+12

您試過嗎? – 2010-08-25 19:35:13

+1

打開Visual Studio並嘗試它。 – 2010-08-25 19:37:43

+0

由於沒有類之間的分割成多個文件和繼承之間的聯繫,我的猜測是肯定的,但正如傑伊說的那樣試試 – 2010-08-25 19:38:25

回答

4

它似乎編譯得很好。

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

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

我認爲這個答案更具信息性,因爲類的簽名將在編譯時合併。所以只將一個部分指定爲密封就足夠了。並且要確定班級是否密封,您需要檢查其所有部件。 – Maxim 2017-04-07 19:28:47

1

是的。密封類僅阻止繼承。部分類不是繼承的;只要您編譯它們就會合併到一個類中。

21

sealed關鍵字只是表示該類不能被繼承。它對班級代碼的結構沒有影響。 partial關鍵字只允許一個類在多個文件中拆分。

在下面的示例中,類A編譯得很好。 B不會編譯,因爲A是密封的,並且不允許繼承。

public sealed partial class A { private int x; } 

public sealed partial class A { private int y; } 

public class B : A { } 
+0

如果在分割文件中,一個類定義被標記爲部分而另一個不是?什麼優先? – 2012-11-06 22:11:24

+2

沒有優先權。你會得到一個編譯器錯誤。 – 2012-11-06 22:15:58

1

是的,你可以讓這部分密封類。

例如:公開密封部分員工