2011-02-25 182 views
1

刚看到一些教程,很困惑作者有时使用这两个属性没有限制和公共领域。我看不出有任何理由这样做。我不应该每次只用它来符合“标准”?为什么有些领域是公共的,有些是属性?

class A 
{ 
    public bool B; 

    private bool c 
    public bool C 
    { 
    get 
    { 
     return c 
    } 
    set 
    { 
     c=value; 
    } 

    } 
} 

回答

6

使用公共领域几乎总是一个坏主意。 Just use properties

你也应该知道自动实现的属性(在C 3#引入),它允许你C财产被写成:

public bool C { get; set; } 
+0

自动属性在C#中引入一个只读属性外设置3.0。 – Oded 2011-02-25 10:04:45

+0

自动实施?这是什么意思,Visual Studio会为我生成这个代码? – Mocco 2011-02-25 10:06:41

+0

@Cocodrilo:这意味着你将源代码放入你的C#代码中,并且编译器生成一个由私有字段支持的属性。有关详细信息,请参阅C#规范。 – 2011-02-25 10:17:26

0

它始终是一个更好的做法,有私人领域。你应该使用标准的编码准则,使代码一致。

您可以通过使用自动实现的属性完全消除对专用字段的使用。

Public int MyProperty {get; set;} 

你也可以有属性私有集合,使他们不能在类的范围,这就好比让

Public int MyProperty {get; private set;} 
相关问题