我甚至不知道這個原則被稱爲什麼或如何搜索它,所以我真誠道歉,如果它曾經提出過,但最好的辦法是舉一個例子。在C#中,我可以隱藏/修改子類中的訪問器嗎?
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實際上是在計算和修改字段的結果。這種聲明方法顯然是錯誤的,因爲我無法從SubProperties
定義中訪問GetActualName()
和SetActualName()
。我將如何實現這樣的事情?
這看起來像我以後,我會給它一個鏡頭。唯一真正的區別是,在我的情況下,在MyClass中沒有私有變量「name」 - 它實際上是讀/寫套接字,但我想將其完全從調用對象中隱藏起來。 謝謝! – Diego 2010-03-28 20:25:38
完美。那就是訣竅。 – Diego 2010-03-28 20:39:42