我有一個抽象類,其抽象屬性設置爲同時具有Get和Set。我知道我總是希望能夠得到此屬性來自派生類,但有些情況下它對集合沒有意義。此屬性在某些類型的派生類中。抽象屬性的可訪問性
我不能忽略派生類中的Set訪問器(請參閱下面的代碼示例)。我可以重寫派生類中的set訪問器,以便與用戶傳遞的值無關。但是有沒有另外一種方法可以使特定派生類中的屬性只讀?最終,我在屬性網格中顯示這些屬性,並且我不希望用戶將值輸入到無法執行任何操作的字段中。也許我只是將該屬性歸類爲只讀在特定的派生類中?
另外,我真的不太會混淆任何類型描述符的東西,以獲得屬性在屬性網格中正確顯示,例如重寫ICustomTypeDescriptor。
public abstract class MyClass
{
public abstract string MyProperty
{
get;
set;
}
}
public abstract class MyDerivedClass
{
public override string MyProperty
{
//VS complains that the Set accessor is missing
get;
}
}
只是想知道...如果你爲它定義一個get/set方法,屬性是否真的抽象?或者這些是抽象的get/set方法? – 2009-06-08 22:32:26
奇數。我只是複製了你的類,爲第二個類繼承了繼承屬性,並且可以毫無問題地構建。 – 2009-06-08 22:33:35