我有兩個函數可以在兩個不同的類上做基本相同的事情......每個類都有不同的屬性。如何將兩個相似的功能組合成一個功能?
例如:
public class ClassA
{
public int ColorID {get;set;}
public string ColorDescription {get;set;}
}
public class ClassB
{
public int TypeID {get;set;}
public string TypeDescription {get;set;}
}
public void ExFunctionSaveA(ClassA aClass)
{
aClass.ColorID=1;
aClass.ColorDescription="My Color";
Save();
}
public void ExFunctionSaveB(ClassB bClass)
{
bClass.TypeID=2;
bClass.TypeDescription="My Type";
Save();
}
正如你所看到的類和函數具有相同類型的結構,只是屬性名稱是不同的...但我覺得我是在重複的代碼做這個
有沒有一種方法,使ExFunctionA和ExFunctionB成一個功能,這樣我就可以用這個具有類似的結構
我知道我可以做一些通用的東西像
所有類public void ExFunctionSave<T>() // T is either ClassA or ClassB
{
.
.
.
.
Save();
}
,但我會如何處理每個
已經建議的接口/繼承之外。我將使用每個類中的構造函數來設置各個屬性的ID和說明。這隻會留下Save()方法,除非您有基類或泛型基類,否則無法刪除它。 – JonWillis