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

时间:2012-08-20 16:39:00

标签: c# properties getter

我已经声明了这样的属性:

private int? platypusLocalId;

public int? PlatypusLocalId
{
    get
    {
        return GetPlatypusLocalIDForPlatypusID(platypusID);
    }
}

...期待对platypusLocalId的任何引用,例如:

Dictionary<int, string> duckBillPairs = GetAvailableDuckBillsForPlatypus(platypusLocalId);

...调用accessor / getter;但是,它没有被调用,因此当传入GetAvailableDuckBillsForPlatypus()时platypusLocalId为null。

2 个答案:

答案 0 :(得分:5)

检查您的案例 - 您直接访问字段platypusLocalId,而不是属性PlatypusLocalId。由于您尚未指定该字段,该字段将为null。

答案 1 :(得分:5)

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

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