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