2013-02-17 135 views
6
public class TestClass 
{ 
    protected internal int FieldA; 
    internal protected int FieldB;  
} 

受保護的內部和內部受檢查成員是否有區別?受保護的內部和內部受保護有區別嗎?

+5

沒有沒有。但是,不要陷入沒有意識到它意味着受保護||的陷阱internal'。這並不意味着'保護&&內部'。 – 2013-02-17 23:57:17

回答

7

受保護的內部和內部檢查 成員是否有區別?

它們之間沒有區別。

protected internal表示protectedinternal

internal protected表示internalprotected

的類型或成員可以通過組件中的任何代碼在 聲明它,從派生類內的另一組件 訪問。來自另一個程序集的訪問必須發生在 聲明中,聲明來自聲明內部元素的受保護 的類,並且它必須通過派生類類型的 實例進行。

protected internal commanly used。沒有關於internal protected的說明MSDN頁面。

還檢查了菲爾哈克酷博客文章What Does Protected Internal Mean?

+0

'internal'或'internal'? – 2013-02-17 23:58:48

+0

@SimonWhitehead修好了,謝謝。 – 2013-02-17 23:59:56

2

不,沒有區別。你可以以你想要的任何順序聲明它們。就像您可以在訪問修飾符之前或之後聲明static一樣。

唯一真正的區別應該是你和你的團隊所決定的。通常你會想堅持一種風格以避免混淆或假設,或者至少在閱讀時保持一致。

編輯:雖然,現在我想起它,我不記得經常看到"internal protected"。在MSDN page for access modifiers,它確實列出它爲"protected internal",所以可能堅持,因爲它可能被認爲是「更標準」。

1

不,沒有。

這兩個變體都定義了一個成員,該成員可以從相同的程序集和子類中訪問。

+0

你的意思是「OR」? – 2013-02-18 01:21:35

+0

在這種特殊情況下,「和」和「或」將具有相同的含義。 – 2013-02-18 03:48:48

1

它與邏輯「或」 =>內部按位操作:從同一個組件。受保護:來自派生類。 「保護和內部」是沒有意義的:-)