伙计们,谢谢你的时间。众所周知,“私有”和“受保护”这两个关键词对于防止一些方法、字段、属性在类外进行无效访问非常有用。但我在特定情况下遇到了问题。下面是示例:
Class Node
{
public string Name {get; private set;}//Private setting authority
public int ID {get;set}
public Node Previous {get;set;}
public Node Next {get;set;}
public void Test()
{
this.Name='Valid';
this.Next.Name='Invalid';//Is this valid??
}
}
就像上面的代码一样,我们在这里得到了一个 'Node' 类,它有两个属性,分别是 'Previous' 和 'Next',它们也是 'Node' 类型。现在让我们关注 'Test()' 方法。 Set ' 是有效的this.Name',但是设置 'this.Next.Name' 有那么奇怪吗?不幸的是,编译器将其视为有效格式!</p>
据我所知,“私人”意味着它不能在课堂外使用。但在这种情况下,我可以访问“上一个”和“下一个”的任何非公共成员(私人/受保护等) .
这真的让我很困惑,请你给一些建议,谢谢!