Dan*_*son 3 c# properties public
[DataContract]
public class UniqueNamedItem
{
[DataMember]
int Id { public get; protected set; }
[DataMember]
string Name { public get; protected set; }
}
[KnownType(typeof(UniqueNamedItem))]
[DataContract]
public class BasicNode : UniqueNamedItem
{
[DataMember]
SortedList<string, BasicNode> Children { public get; private set; }
public void addChild(BasicNode bn)
{
this.Children.Add(bn.Name, bn);
}
}
Run Code Online (Sandbox Code Playgroud)
你能告诉我为什么在我的addChild函数中,对bn.Name的调用无效,即使UniqueNamedItem.Name属性有一个公共get访问器吗?
Ode*_*ded 12
在默认的无障碍的类成员是private.
所以,Id和Name是private.
你需要添加正确的访问修饰符(我添加了public你可能意味着protected):
[DataContract]
public class UniqueNamedItem
{
[DataMember]
public int Id { public get; protected set; }
[DataMember]
public string Name { public get; protected set; }
}
Run Code Online (Sandbox Code Playgroud)
始终声明所需辅助功能的一个很好的理由.