У меня есть класс Bar с частным полем, содержащим ссылочный тип Foo. Я хотел бы открыть Foo в публичном свойстве, но я не хочу, чтобы потребители свойства могли изменять Foo... Однако он должен быть изменен внутри Bar, т.е. я не могу сделайте поле readonly.
Итак, я бы хотел:
private _Foo;
public Foo
{
get { return readonly _Foo; }
}
... что, конечно, недействительно. Я мог бы просто вернуть клон Foo (при условии, что это IClonable), но это не очевидно для потребителя. Должен ли я изменить имя свойства на FooCopy? Должен ли он быть GetCopyOfFoo? Что вы считаете лучшей практикой? Спасибо!