C#中的擴展類可能不是通過僅添加函數而是通過屬性來擴展。例如:我有一個我依賴的標準DLL庫,供應商不想修改它。C#通過添加屬性來擴展類
已經在整個代碼中已經廣泛地使用了DataCell類,並且現在才意識到我需要爲它添加一個額外的屬性,因爲創建一個從此類繼承的新擴展類只是看起來不會工作+很多重寫。
DATACELL [元數據]
public class DataCell : Message
{
public int Field1;
public int Field2;
public DataCell()
{
..
}
..
}
基本上我想添加一個公衆詮釋標誌;這個班。所以我現在可以不用重寫任何東西,(新的DataCell).Flags = 0x10;
你不能有擴展屬性,但你可以繼承一個類,添加屬性 – Sayse
什麼你在這種情況下,「延長」意思?你有源代碼嗎?或者你想使用擴展屬性(你不能)?或從DataCell繼承好嗎? – Tim
通過擴展我的意思是這個類在供應商.dll庫中大量使用,我正在使用。創建像ExtDataCell:DataCell不是一個選項,因爲我基本上需要重寫.dll庫。所以我想以某種方式能夠做到這一點,所以來自供應商.dll的DataCell可以擁有它沒有atm的Flags屬性。 (沒有修改供應商DLL) –