<分区> 分区>
从 this answer 产生,出现了一些似乎没有意义的代码:
class Program
{
static void Main(string[] args)
{
var t = new Testing
{
ListOfStrings =
{
"hello",
"goodbye"
}
};
Console.ReadKey();
}
}
public class Testing
{
public List<string> ListOfStrings { get; private set; }
public Testing()
{
ListOfStrings = new List<string>();
}
}
乍一看,人们会认为这段代码无法编译:毕竟 ListOfStrings 应该有一个私有(private)的 setter,并且不应该以这种方式分配给它。
但是,此代码编译并运行良好,t.ListOfStrings 已分配值。
为什么这个集合初始化会忽略私有(private) setter?
