[英]Property getter setter in C#
我有一个班级图书馆项目。 我在下面有一个物业。 这不是只读属性
private Int32 ABC ;
public Int32 ABCD
{
set
{
this.ABC = value;
}
get
{
return this.ABC;
}
}
我的问题是,是否有必要为getter / setter和setter声明私有变量?
编辑
我的意思是像下面吗?
public Int32 ABCD {}
使用C#3.0(VS 2008)或更高版本中引入的自动实现的属性。
http://msdn.microsoft.com/zh-CN/library/bb384054.aspx
public Int32 Abcd {get;set;}
编译器会为您创建后备字段。 但是,它是匿名的,无法访问。 如果以后发现需要访问支持字段,则可以显式声明它,并使用该字段重新实现getter和setter而不破坏接口。
使用自动执行的属性,从2008年开始进行干预:
public Int ABCD
{
set;
get;
}
但是区别是默认值,即,在具有后备字段的属性中,您可以在变量中设置默认值,但在这种情况下,默认值为.net默认值。 (实际上,您应该在构造函数中将其初始化为默认值)。
如果您选择第二个,C#将为您创建第一个。
是否需要为getter / setter和setter声明相同的私有变量?
如果您的意思是有必要使用私有变量 ,那么是的(除非您使用BoltClock提到的自动方法)。您应该记住,这是一个完整的代码块,因此您可以做任何您想做的事情在那里-尽管您应该在合理的范围内进行操作,因为您不希望任何事情会减慢对属性的访问。
例如,更改属性可能会有副作用,即,可能必须更新另一个属性,或者您可能必须通知其他属性也已更改。
如果您没有通知或做任何其他事情,那么自动getter / setter方法的开发速度会更快(但这并不是说它是执行最快(或最慢)的方法)。
你可以这样
public string ABCD { get;set;}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.