読み取り専用フィールドのみを持つ C# クラスがあるが、フィールドの型が不変でない場合、そのクラスは不変と見なされますか?
このクラスは不変ですか?
public class Foo
{
private readonly int[] _blah;
public Foo(int[] blah)
{
_blah = blah;
}
public int[] Blah { get { return _blah; } }
}
配列のメンバー変数は変更できませんが、配列のメンバーを変更できるため、_blah は不変ではありません。
では、フィールドがすべて読み取り専用の場合、クラスは不変ですか、それとも、フィールドが読み取り専用であるだけでなく、それ自体も不変である場合にのみ、クラスは不変ですか?