C# 多个通用参数

Posted

技术标签:

【中文标题】C# 多个通用参数【英文标题】:C# Multiple Generic Parameters 【发布时间】:2018-11-07 12:50:21 【问题描述】:

下面的代码使用一个通用参数。

有没有办法在我想要 2 个或更多类的地方获取多个泛型变量? (例如,T1 类、T2 类等)

原始通用:

public interface IGenericRepository<T> where T : class 

    IQueryable<T> GetAll();
    IQueryable<T> FindBy(Expression<Func<T, bool>> predicate);
    void Add(T entity);
    void Delete(T entity);
    void Edit(T entity);
    void Save();

【问题讨论】:

Generic method with multiple constraints的可能重复 【参考方案1】:

泛型类型可以是任何东西,而不仅仅是 T - T 恰好是常见的。

例子:

void foo<TOne, TTwo>() 
   where TOne : BaseOne
   where TTwo : BaseTwo

更多信息可以查看here。查看“约束多个参数”部分。

【讨论】:

我也可以只使用Class,而不是Base1,Base2,如下所示? void foo() where TOne : class where TTwo : class 是的,您可以根据链接文章开头的表格使用类来限制类类型。

以上是关于C# 多个通用参数的主要内容,如果未能解决你的问题,请参考以下文章

C#中的泛型

C# 中是不是有带有参数约束的通用构造函数?

C# 使用 System.Type 作为通用参数

C#:在运行时获取类型参数以传递给通用方法[重复]

转载:C#中的泛型

C#中的泛型详解