我什至不知道这个原则叫什么或如何搜索它,所以如果以前有人提出过,我很抱歉,但最好的方法是举个例子。
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