为什么我的财产的访问者被忽略了?

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.

kev*_*ner 5

检查你的情况 - 你platypusLocalId直接访问该领域,而不是财产PlatypusLocalId.由于您尚未指定该字段,该字段将为null.


Mar*_*ill 5

对PlatypusLocalId的任何引用都将调用getter.但是,您使用的是platypusLocalId(请注意小写的p),这意味着您正在直接访问私有字段.

属性不仅仅是神奇地使用 - 你必须打电话给他们!