可能重复:
Properties vs Methods
C#: Public Fields versus Automatic Properties
答案 0 :(得分:3)
您需要他们控制您的对象私有字段值。例如,如果您不想允许整数的空值或负值。此外,封装对于触发对象成员值更改时的事件非常有用。 实施例
bool started;
public bool Started
{
get { return started; }
set
{
started = value;
if (started)
OnStarted(EventArgs.Empty);
}
}
另一个例子
int positiveNumber;
public int PositiveNumber
{
get { return positiveNumber; }
set {
if (value < 0)
positiveNumber = 0;
else positiveNumber = value;
}
}
以及只读属性的另一个实现可以如下
int positiveNumber;
public int PositiveNumber
{
get { return positiveNumber; }
}
答案 1 :(得分:1)
您的意思是仅属性还是关键字get; set;
?
属性:轻松实现,属性是智能字段。聪明的是,您可以在想要获取或设置值时添加逻辑。用法示例:如果要验证要设置为属性的值,或者是否要组合来自不同字段的值而不将这些字段公开给公众。
关键字:这是一个C#简写,用于创建具有支持字段的属性(存储值的字段)。当您启动新代码并希望尽早完成界面时,它非常有用。