C#直接分配值或使用私有setter

时间:2014-01-01 20:52:35

标签: c# wpf setter

我目前正在开发一个WPF项目,我的大部分属性都有两个选项可以在内部分配值:

private int counter = 0;
public int Counter {
    get {
        return counter;
    }
    private set {
        counter = value;
    }
}
  1. 通过私人设定者进行分配 Counter = 1;

  2. 将值直接分配给私有对象 counter = 1;

  3. 在内部(在类本身中)分配值的首选方法是什么?使用一个在另一个上有什么好处吗?

2 个答案:

答案 0 :(得分:6)

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

顺便说一句。你为什么不使用自动财产?

public int Counter { get; private set; }

您不必使用0初始化字段。它是int的默认值,因此无论如何都会完成。

答案 1 :(得分:0)

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

counter++;