繁体   English   中英

在C#中将类型约束为任何通用类型的实例

[英]Constrain Type to Any Instance of Generic Type in C#

我想创建一个可以与多个数据访问系统一起使用的基本实体。 泛型类型参数表示属性的类型。

public interface IEntity<T> {
    public T Id {get; set;}
}

我希望能够将此接口用作泛型类型约束,而无需在泛型方法中指定类型参数。

public void Read<T>(Expression<Func<T, bool>> expression) where T : IEntity<**any type**>

这可能吗? 如果没有,有哪些替代方案?

你可以这样做。 添加第二个泛型类型参数:

public void Read<T, U>(Expression<Func<T, bool>> expression) where T : IEntity<U>

对该类型参数使用约束并在声明中指定这两种类型。 这推动了关于什么东西在链条上的决定。

public void Read<T,TOther>(Expression<Func<T, bool>> expression) where T : IEntity<TOther>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM