小编Pet*_*vor的帖子

没有new()的泛型

我的项目中有十几种方法(C#2.0),如下所示:

internal bool ValidateHotelStayEntity(DataRow row)
{
    return (new HotelStayEntity(row)).Validate();
}
Run Code Online (Sandbox Code Playgroud)

......但是对于不同的"实体"类.(好吧,不是那么琐碎,我在这里简化了代码.)

它似乎是泛型的一个很好的候选者,我想出了这个:

internal bool ValidateEntity<T>(DataRow row) where T : EntityBase
{
    return (new T(row)).Validate();
}
Run Code Online (Sandbox Code Playgroud)

当然我得到"无法创建类型参数'T'的实例,因为它没有new()约束"错误.

问题是这些"实体"类没有公共无参数构造函数,也没有在之后添加"行"数据的方法.由于EntityBase是公司框架的一部分,我无法控制它(即我无法改变它).

有没有办法解决?

c# generics

7
推荐指数
2
解决办法
360
查看次数

标签 统计

c# ×1

generics ×1