c#公共财产无法访问

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.

所以,IdNameprivate.

你需要添加正确的访问修饰符(我添加了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)

始终声明所需辅助功能的一个很好的理由.