C#直接赋值或使用私有setter

C#直接赋值或使用私有setter,c#,wpf,setter,C#,Wpf,Setter,我目前正在开发一个WPF项目,我的大多数属性都有两个内部赋值选项: private int counter = 0; public int Counter { get { return counter; } private set { counter = value; } } 通过私有setter进行分配 计数器=1 将值直接指定给私有对象 计数器=1 在内部(类本身)赋值的首选方法是什么?使用一个比另一个有什么好处吗?我会使用这

我目前正在开发一个WPF项目,我的大多数属性都有两个内部赋值选项:

private int counter = 0;
public int Counter {
    get {
        return counter;
    }
    private set {
        counter = value;
    }
}
  • 通过私有setter进行分配 计数器=1

  • 将值直接指定给私有对象 计数器=1


  • 在内部(类本身)赋值的首选方法是什么?使用一个比另一个有什么好处吗?

    我会使用这个属性。如果您发现以后必须更改属性行为,它将为您提供更大的灵活性—您将无法使用字段来执行此操作

    顺便说一句,为什么不使用自动属性

    public int Counter { get; private set; }
    

    您不必使用
    0
    初始化字段。它是
    int
    的默认值,因此无论如何都可以执行。

    如果需要私有集变量,最好在构造函数中插入属性,以便将对象初始化为正确的状态。但是,如果在方法中构造后分配私有变量,则可以直接设置该变量:

    counter++;
    
    可能重复的