この答えから出てくると、意味をなさないと思われるいくつかのコードが現れました:
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
、プライベート セッターがあるはずであり、この方法で割り当てられるべきではありません。
ただし、このコードは正常にコンパイルおよび実行t.ListOfStrings
され、値が割り当てられています。
このコレクションの初期化でプライベート セッターが無視されるのはなぜですか?