2009-10-20 26 views

回答

4

我不確定這是不是你的意思,但是一般來說,受保護的成員是類接口的一部分。

您不想公開成員變量,因爲它們會使您的實現變得不靈活。受保護的成員變量會執行相同的操作,因爲繼承自您的類將依賴於它們,從而使您的實現變得不靈活。

阿薩夫

5

它告訴你不要聲明在類之外可見的字段,即不是私有的。在這種情況下,它正確地將protected修飾符識別爲暴露類之外的成員,儘管僅限於派生類型。

0

它看起來像你得到的頹勢您的外部可見的情況下領域錯誤。這裏推薦的做法是將此字段設置爲私有,並通過外部可見屬性(使用公共或受保護的訪問修飾符)公開它。

MSDN頁上的錯誤給出了一個很好的例子:

using System; 
namespace DesignLibrary 
{ 
    public class BadPublicInstanceFields 
    { 
     // Violates rule DoNotDeclareVisibleInstanceFields. 
     public int instanceData = 32; 
    } 

    public class GoodPublicInstanceFields 
    { 
     private int instanceData = 32; 

     public int InstanceData 
     { 
     get { return instanceData; } 
     set { instanceData = value ; } 
     } 
    } 
} 
相關問題