我有一个对象的集合,我通过作为参数创建另一种类型的对象(一个一个).我在许多地方这样做(基本上从数据对象转换为业务对象).我想编写一个通用的扩展方法来完成这个.但是我被卡住了,因为我不知道如何指定业务对象具有以数据对象为参数的构造函数的约束.以下是我的功能代码:
public static IList<T> ConvertTo<A,T>(this IEnumerable<A> List) where T : new(A)/*THIS IS PROBLEM PART*/{ var ret = new List<T>(); foreach (var item in List) { ret.Add(new T(item)); } return ret;}解决方法 不幸的是,这是不允许在C#.您可以有一个new()约束强制类型具有默认构造函数,但这是.NET支持的唯一与构造函数相关的约束.
您最好的选择可能是定义一个可以使用的界面,并限制到界面.而不是尝试在构造中设置对象,您可以使用“初始化”样式方法来获取“A”对象,并调用该对象.
总结以上是内存溢出为你收集整理的c# – 为Generic参数指定构造函数约束全部内容,希望文章能够帮你解决c# – 为Generic参数指定构造函数约束所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)