为什么要使用成员变量
本文关键字:成员 变量 为什么 | 更新日期: 2023-09-27 18:25:11
可能重复:
C#中属性与字段的区别
几周前,我用C#开始了一份新工作(从那以后,我基本上就开始学习了),我看到了很多做事的方法,我很好奇为什么(因为我学习得很新鲜,这些年来他们都学会了。)
基本上,我正在努力找出原因:
private int i;
优于:
private int I {get;set;}
如果答案是(正如我所怀疑的)为调用get/sets生成了额外的IL,那么为什么自动实现的get/sets存在呢?为什么
public int i;
比更糟糕
public int I{get;set;}
更奇怪的是,为什么我不总是使用属性,或者为什么我不避免自动实现的方法,比如瘟疫。
我知道当我想到这个问题的时候,这听起来像是一个合乎逻辑的问题,但当我写的时候就不那么合理了,所以我希望它有某种意义。
感谢
很多时候,您需要超出自动实现属性定义的额外逻辑。
例如,如果您想要实现INotifyPropertyChanged,在这种情况下,您将需要自己的支持字段,因此您可以编写:
private int someValue;
public int SomeValue
{
get { return this.someValue; }
set
{
if (value != this.someValue)
{
this.someValue = value;
this.RaisePropertyChanged("SomeValue"); // This extra logic required...
}
}
}