我正在尝试编写一个返回通用对象的泛型方法。该方法将采用泛型类型并使用它来查询具有匹配类型的对象的集合。
我尝试将此对象添加到集合时尝试了但存在编译错误。 cannot convert from CustomSet<AppLog>' to 'CustomSet<System.Type>'
我如何符合此规范?
public CustomSet<TEntity> Set<TEntity>() where TEntity : class
{
Type key = typeof(TEntity);
if (allSets.ContainsKey (key))
{
return allSets[key];
}
}
private static readonly Dictionary<Type, CustomSet<Type>> allSets = new Dictionary<Type, CustomSet<Type>>()
{
{typeof(AppLog), AppLogs}
};
public static CustomSet<AppLog> AppLogs { get; set; }
修改
代码已更新,因此只会出现上述编译错误
答案 0 :(得分:3)
您需要使用educationalYear
字典来降低类型安全性。将其定义为appSets
,并在检索后将项目强制转换为Dictionary<Type, object>
:
CustomSet<TEntity>