在 C# 中,通常当我定义一个属性时,我为 get 和 set 声明并实现一行或多行。例如
public bool IsThere
{
get { return _isThere; }
set { _isThere = value;}
}
现在这是什么意思?
public bool IsThere
{
get;
set;
}
在 C# 中,通常当我定义一个属性时,我为 get 和 set 声明并实现一行或多行。例如
public bool IsThere
{
get { return _isThere; }
set { _isThere = value;}
}
现在这是什么意思?
public bool IsThere
{
get;
set;
}
这些是自动属性。它们的工作方式与您的第一个示例相同,但允许您省略不必要的源代码。
当您的 getter/setter 方法不再存在时,最好使用它们。
它们还允许您稍后向 getter/setter 方法添加逻辑,而不会破坏任何调用代码(即使您还必须自己实现私有支持属性)。
这是一个自动实现的属性(自动属性)。
C# 编译器将自动为 get/set 方法创建一个私有字段成员以读取/写入。
请注意,自动属性存在限制(目前)。例如,您不能使用修饰符,例如readonly
,尽管您仍然可以标记它,因为private set
它并不完全相同。