クラスのプライベートメンバーを外部で変更できる状況に遭遇しました。これが私のクラスです:
public class MyClass
{
private List<string> _myClassMember = null;
public MyClass()
{
_myClassMember = new List<string>();
}
public List<string> GetClassMembers()
{
return _myClassMember;
}
public void PrintMembers()
{
Console.WriteLine("No of items in member {0}", _myClassMember.Count.ToString());
}
}
これは、次のように呼ばれています。
class Program
{
static void Main(string[] args)
{
MyClass cls = new MyClass();
cls.PrintMembers();
IList<string> lst = cls.GetClassMembers();
lst.Add("Item1");
lst.Add("Item2");
cls.PrintMembers();
}
}
次のように印刷されます。
No of items in member 0
No of items in member 2
外部のプライベートメンバーを更新できるのは正しいですか?