以下代码未设置该属性。它什么也不做,调试时只是向前跳,即使是 F11
job.TDataReference.CheckedOut = false;
工作属于 TJob 类型,我使用以下属性构建自己的类:
public TDataReference TDataReference
{
get
{
return new TDataReference(this.DataReference);
}
set { this.tDataReference = value; }
}
TDataReference 也是我自己用属性构建的一个类:
public bool CheckedOut
{
get { return (dataRow[CHECKEDOUT].ToString() == "True"); }
set { dataRow[CHECKEDOUT] = value.ToString(); }
}
和 DataRow 类型的私有成员 dataRow
有趣的是,以下代码可以正常工作并设置属性:
TDataReference dr = job.TDataReference;
dr.CheckedOut = false;
谁能给我解释一下。
更新
非常感谢您的回答!我明白这个问题。:)
tDataReference 取决于 this.DataReference 中的值,因此可以设置 tDataReference 的最早时间是 this.DataReference 已知的时间。您如何考虑将其更改为:
private TDataReference tDataReference;
public TDataReference TDataReference
{
get
{
if(tDataReference == null | tDataReference.Id != this.DataReference)
{
this.tDataReference = new TDataReference(this.DataReference);
}
return this.tDataReference
}
set { this.tDataReference = value; }
}
然后设置级联属性工作吗???