У меня есть этот класс:
class C
{
private String msg;
public void F(C obj, String arg)
{
obj.msg = arg; // this is strange, the msg shouldn't be accessible here.
}
public void Output()
{
Console.WriteLine(msg);
}
}
Код проверки:
C obj1 = new C();
C obj2 = new C();
obj1.F(obj2, "from obj1");
obj2.Output();
Выход:
from obj1
Таким образом, пользовательский член obj2 получает доступ к другому объекту obj1. Я думаю, что это странно.
ADD
Вот полезная ссылка, упомянутая Хабибом:
Почему частные типы являются закрытыми для типа, а не экземпляра?