2009-10-20 52 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 ; } 
     } 
    } 
} 
相关问题