我有一个接受一个泛型参数的公共泛型方法。我还有几个私有方法接受我从泛型方法调用的具体类型参数。为了更好地描述我的问题,请查看以下代码:
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){}
...
查看代码,我真的不喜欢这个解决方案,检查每种可能的类型看起来像是一种不好的做法恕我直言。所以我想知道我的问题是否有更清洁的解决方案?也许可以在运行时动态转换 T 并调用适当的私有方法?