0

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

private int? platypusLocalId;

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

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

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

...调用访问者/获取者;但是,它没有被调用,因此当传递给 GetAvailableDuckBillsForPlatypus() 时 platypusLocalId 为空。

4

2 回答 2

5

检查您的情况 - 您正在platypusLocalId直接访问该字段,而不是该 property PlatypusLocalId。该字段将为空,因为您尚未分配它。

于 2012-08-20T16:40:41.703 回答
5

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

属性不仅仅是神奇地使用 - 你必须调用它们!

于 2012-08-20T16:41:20.603 回答