我想设置修改标志当过我改变类属性的一个如下图所示问题得到;组;
public bool Modified { get; set; }
public bool Enabled { get; set { Modified = true; } }
问题是我有一个错误,编译器要求我声明主体为获取; 我宁愿不必声明一个单独的私有变量,是否有另一种方式来做到这一点。
C#,NET-2
感谢
我想设置修改标志当过我改变类属性的一个如下图所示问题得到;组;
public bool Modified { get; set; }
public bool Enabled { get; set { Modified = true; } }
问题是我有一个错误,编译器要求我声明主体为获取; 我宁愿不必声明一个单独的私有变量,是否有另一种方式来做到这一点。
C#,NET-2
感谢
号如果你想要一个明确的制定者,你不能使用自动吸气。所以你必须有这样的东西:
private bool _Enabled;
public bool Modified { get; set; }
public bool Enabled
{
get
{
return _Enabled;
}
set
{
_Enabled = value;
Modified = true;
}
}
这是不可能的。 C#不允许你指定一个机构或一个其他的get
或set
,但有其他的自动执行。如果您需要这样做,您需要一个带有后台字段的手动属性。
注意,你想是这样的:
public bool Modified { get; set; }
private bool enabled;
public bool Enabled {
get { return this.enabled; }
set {
if(this.enabled != value) {
this.enabled = value;
this.Modified = true;
}
}
}
我认为你需要写getter和setter用于启用全:
public bool Modified { get; set; }
private bool enabled;
public bool Enabled
{
get { return enabled; }
set
{
if (enabled != value)
{
Modified = true;
enabled = value;
}
}
}
因为自动生成的成员将用于创建get; set;
财产,那么你不能宣称他们中的一个,否则你必须自己
将它们设置你也许可以只设置`Modified`是`在二传手TRUE`如果`_Enabled! =值`。 – jason 2011-01-12 22:53:50
@Jason,我只是不停地像的问题。您可能是对的,取决于所需的行为。 – 2011-01-12 22:56:05