我有一個公共的泛型方法,它接受一個泛型參數。我也有一個私有方法接受具體類型參數,我從泛型方法調用。爲了更好地描述我的問題,看看下面的代碼:動態鑄造調用適當的過載
public void Save<T>(T entity) where T : class
{
if(entity is LibraryItem) Save(entity as LibraryItem);
else if(entity is Folder) Save(entity as Folder);
else if(entity is ProductType) Save(entity as ProductType);
else if(entity is ProcessName) Save(entity as ProcessName);
}
和私有方法:
private void Save(ProcessName proc){}
private void Save(ProductType type){}
private void Save(Folder folder){}
...
看代碼,我真的不喜歡這個解決方案,檢查每一個可能的類型看起來像一個不好的練習imho。所以我想知道我的問題是否有更清潔的解決方案?也許可以在運行時動態調用T並調用適當的私有方法?
你好,downvoter。一些解釋,如果有的話? –
就這麼簡單?我期待更復雜的東西,如反思:)高興地發現。謝謝:) – Davita
@Davita'dynamic'不是魔術。您應該意識到使用它的後果,因爲它們很重要。 – Servy