我想知道为什么这段代码是正确的,并且可以向私有NameList添加值.我认为私有字段无法从类实例中访问.
class Program
{
static void Main(string[] args)
{
Test test = new Test();
test.NameList.AddRange(new[] { "Test" }); // why OK?
test.Name = "fake"; // error, OK!
}
}
class Test
{
public string Name { get; private set; }
public List<string> NameList { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
酒店的吸气剂是公共的.因此,它返回一个List<String>可变的类型的对象.你的代码只是在修改那个对象; 完全合法.
仅声明setter private意味着您将无法分配新 List<String>对象NameList.
| 归档时间: |
|
| 查看次数: |
209 次 |
| 最近记录: |