从类实例访问私有字段

时间:2014-07-31 14:43:12

标签: c# .net

我想知道为什么这段代码是正确的,并且可以将值添加到私有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; }
}

感谢。

1 个答案:

答案 0 :(得分:7)

该物业的吸气剂是公开的。因此,它返回一个类型为List<String>的对象,它是可变的。你的代码只是在修改那个对象;完全合法。

仅声明setter private表示您无法将 List<String>对象分配给NameList