多类型参数约束的C#泛型语法[重复]

Posted

技术标签:

【中文标题】多类型参数约束的C#泛型语法[重复]【英文标题】:C# generics syntax for multiple type parameter constraints [duplicate] 【发布时间】:2010-11-01 05:21:06 【问题描述】:

可能重复:Generic methods and multiple constraints

我需要一个具有两个类型约束的泛型函数,每个约束都继承自不同的基类。我知道如何用一种类型做到这一点:

void foo<T>() where T : BaseClass

但是,我不知道如何使用两种类型来做到这一点:

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

你是怎么做到的? (使用 .NET 2)

【问题讨论】:

【参考方案1】:
void foo<TOne, TTwo>() 
   where TOne : BaseOne
   where TTwo : BaseTwo

更多信息在这里:http://msdn.microsoft.com/en-us/library/d5x73970.aspx

【讨论】:

如果您不想全部阅读,请搜索“约束多个参数”。 是否有可能有一个约束来做到这一点:void foo&lt;TOne, TTwo&gt;() where TOne : Class where TTwo : Class where TOne != TTwo 所以基本上我们不知道 TOne 和 Ttwo 是什么,除了它们是引用类型但不能相同 @IronHide:我很想在这里被证明是错误的……但我 99% 确信这是不可能的 :) 以及如何将 ExtensionMethod 与多个泛型一起使用

以上是关于多类型参数约束的C#泛型语法[重复]的主要内容,如果未能解决你的问题,请参考以下文章

无法用类型约束重载泛型方法[重复]

在C#中将类型参数传递给泛型[重复]

C#中的泛型,使用变量的类型作为参数[重复]

在 C# 中使用枚举作为泛型类型参数 [重复]

c#中泛型类型的默认值[重复]

C# 泛型类型参数的约束