在过去,我们像这样声明属性:
public class MyClass
{
private int _age;
public int Age
{
get{ return _age; }
set{ _age = value; }
}
}
现在我们可以这样做:
public class MyClass
{
public int Age {get; set;}
}
我的问题是,如何访问使用此表示法自动创建的私有变量?
我更愿意访问私有变量,而不是公共访问器'Age‘。是否有访问私有变量的默认表示法,或者这是不可能的?
发布于 2008-09-14 17:35:11
使用自动属性意味着您不需要任何属性的获取/设置逻辑,因此私有支持变量是不必要的。
如果你的类中有任何复杂的逻辑,不要使用自动属性。只需像往常一样使用private int _age
和普通的getter/setter。
IMO,自动属性更适合于快速实现一次性对象或临时数据胶囊,如:
public class TempMessage {
public int FromID { get; set; }
public int ToID { get; set; }
public string Message { get; set; }
}
你不需要太多的逻辑。
发布于 2008-09-14 20:39:14
你不应该这样做,而且你也不太可能需要这样做。如果您需要访问该属性,只需使用公共属性(例如this.Age)。支持公共属性的私有字段没有什么特别之处,优先使用它而不是属性只是迷信。
发布于 2008-09-14 17:22:57
你不能,它是一种语言特性,而不是IDE特性。老实说,我更喜欢IDE为你添加私有变量。我同意这个类在内部必须使用公共入口点来访问它自己的变量,这有点奇怪。因此,我自己并不经常使用这个新特性。
https://stackoverflow.com/questions/61480
复制相似问题