Я даже не уверен, как называется этот принцип или как его искать, поэтому я искренне извиняюсь, если он был поднят раньше, но лучший способ сделать это с примером.
class Properties
{
public string Name { get; set; }
}
class MyClass
{
class SubProperties: Properties
{
public override Name
{
get { return GetActualName(); }
set { SetActualName(value); }
}
}
public SubProperties ClassProperties;
private string GetActualName()
{
return SomeFunction();
}
private void SetActualName(string s)
{
ClassProperties.Name = SomeOtherFunction(s);
}
}
Идея состоит в том, чтобы любой объект, который создает экземпляр MyClass
, имел полностью доступное свойство ClassProperties
. Для этого объекта он будет выглядеть точно так же, как объект Properties, но за кулисами MyClass фактически вычисляет и модифицирует результаты полей. Этот метод объявления явно неправильный, так как я не могу получить доступ к GetActualName()
и SetActualName()
из определения SubProperties
. Как бы мне достичь чего-то подобного?