B. *_*non 0 c# getter properties
我已声明了这样的属性:
private int? platypusLocalId;
public int? PlatypusLocalId
{
get
{
return GetPlatypusLocalIDForPlatypusID(platypusID);
}
}
Run Code Online (Sandbox Code Playgroud)
...期待对platypusLocalId的任何引用,例如:
Dictionary<int, string> duckBillPairs = GetAvailableDuckBillsForPlatypus(platypusLocalId);
Run Code Online (Sandbox Code Playgroud)
...呼叫访问者/获取者; 但是,它没有被调用,因此当传入GetAvailableDuckBillsForPlatypus()时,platypusLocalId因此为null.
对PlatypusLocalId的任何引用都将调用getter.但是,您使用的是platypusLocalId(请注意小写的p),这意味着您正在直接访问私有字段.
属性不仅仅是神奇地使用 - 你必须打电话给他们!