getter和setter两种方式之间有什么区别。哪个更好?

时间:2013-06-14 09:19:51

标签: c#

有两种方法可以实现getter和setter。

A:

public Object Name {get;set;}

B:

private Object _name;
public Object Name
{
       get {return this._name;}
       set {this._name = value;}
}

当我们想要获得或设置属性时,我们都使用

X.Name = "Joy";
String name = X.Name

所以我只是想知道它们之间的区别。

谢谢。

2 个答案:

答案 0 :(得分:1)

第一个是Auto-Implemented Properties,基本上是syntactic sugar,结果与第二种方法相同。

当使用第一个自动实现的属性时,c#编译器将生成一个支持字段,就像你在第二种情况下声明它一样。

如果您想使该属性只读,您可以使用声明它:

public Object Name {get; private set;}

答案 1 :(得分:1)

他们是一样的。第一个是语法糖。

但是如果你想添加一些逻辑,比如验证setter值,第二个是你需要的。