C#泛型和推断类型
发布时间:2020-12-16 00:01:01 所属栏目:百科 来源:网络整理
导读:我在努力编写通用方法来保存和加载Sterling数据库中的数据时遇到了困难. 这是我的保存方法: public static void SaveListT(ListT listToSave){ foreach (T listItem in listToSave) { DatabaseInstance.Save(listItem); }} 我在保存下出现了波浪形的红线,并
我在努力编写通用方法来保存和加载Sterling数据库中的数据时遇到了困难.
这是我的保存方法: public static void SaveList<T>(List<T> listToSave) { foreach (T listItem in listToSave) { DatabaseInstance.Save(listItem); } } 我在保存下出现了波浪形的红线,并且出现“类型T必须是参考类型才能将其用作参数T”的错误 这是我的加载方法: public static List<T> LoadList<T>() { List<T> list = (from index in DatabaseInstance.Query<T,int>() select index.Key).ToList(); return list; } 我犯了同样的错误. 有任何想法吗? 干杯 史蒂夫 更新: 我按照建议添加了一个T:class,并收到错误: Type T必须具有公共无参数构造函数才能将其用作参数 按照Bryan提供的链接中的说明添加,new()结束,现在全部工作. 解决方法
您的定义需要
generic type constraint:
public static void SaveList<T>(List<T> listToSave) where T : class { foreach (T listItem in listToSave) { DatabaseInstance.Save(listItem); } } public static List<T> LoadList<T>() where T : class { List<T> list = (from index in DatabaseInstance.Query<T,int>() select index.Key).ToList(); return list; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |