为什么要使用成员变量

本文关键字:成员 变量 为什么 | 更新日期: 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...
        }
    }
}