我正在用 C# 编写一个泛型方法:
private T GetMamConfigurations<T>(IDictionary<string, object> items,
MaMDBEntities maMDBEntities) where T : class
{
T geoConfigs = default(T);
if (typeStr.Equals("MamConfiguration", StringComparison.OrdinalIgnoreCase))
{
geoConfigs = (T)GetGeoConfigurationNumericFromDB(items, maMDBEntities);
}
else if (typeStr.Equals("ListOfMamConfiguration", StringComparison.OrdinalIgnoreCase))
{
geoConfigs = (T)GetGeoConfigurationsPercentageFromDB(items, maMDBEntities);
}
return geoConfigs;
}
GetGeoConfigurationNumericFromDB
返回MamConfiguration
然而
GetGeoConfigurationsPercentageFromDB
返回IList<MamConfiguration>
我得到编译错误:
不能将类型的表达式
MamConfiguration
转换为类型T
这是为什么?
有没有什么办法可以在不强制这两种方法返回的情况下解决IList<MamConfiguration>
?