我已经声明了这样的属性:
private int? platypusLocalId;
public int? PlatypusLocalId
{
get
{
return GetPlatypusLocalIDForPlatypusID(platypusID);
}
}
...期待对platypusLocalId的任何引用,例如:
Dictionary<int, string> duckBillPairs = GetAvailableDuckBillsForPlatypus(platypusLocalId);
...调用accessor / getter;但是,它没有被调用,因此当传入GetAvailableDuckBillsForPlatypus()时platypusLocalId为null。
答案 0 :(得分:5)
检查您的案例 - 您直接访问字段platypusLocalId
,而不是属性PlatypusLocalId
。由于您尚未指定该字段,该字段将为null。
答案 1 :(得分:5)
对PlatypusLocalId的任何引用都会调用getter。 但是,您正在使用platypusLocalId(请注意小写的p),这意味着您正在直接访问私有字段。
属性不仅仅是神奇地使用 - 你必须打电话给它们!