Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在单个方法上指定多个泛型类型约束?_C#_Generics - Fatal编程技术网

C# 如何在单个方法上指定多个泛型类型约束?

C# 如何在单个方法上指定多个泛型类型约束?,c#,generics,C#,Generics,我可以使用“Where”子句将泛型限制为指定类型,例如: public void foo<TTypeA>() where TTypeA : class, A public void foo(),其中TTypeA:class,A 如果我的函数有两种泛型类型,我该怎么做 public void foo<TTypeA, TTypeB>() where TTypeA : class, A && TTypeB : class, B public void fo

我可以使用“Where”子句将泛型限制为指定类型,例如:

public void foo<TTypeA>() where TTypeA : class, A
public void foo(),其中TTypeA:class,A
如果我的函数有两种泛型类型,我该怎么做

public void foo<TTypeA, TTypeB>() where TTypeA : class, A && TTypeB : class, B
public void foo(),其中TTypeA:class,A&&TTypeB:class,B
上述方法不起作用。添加规则“TTypeB:class,B”的正确语法是什么 其中TTypeB:class,B
公共void foo(),其中TTypeA:class,A其中TTypeB:class,B
该死,晚了20秒。投票给詹姆斯·科伦,他是第一个。

像这样的吗

 public void foo<TTypeA, TTypeB>() where TTypeA : class where TTypeB : class
public void foo()其中TTypeA:class其中TTypeB:class

只需将
&
替换为另一个
,其中

有关泛型类型参数约束的更多信息可在MSDN上获得,其中它们描述了一些其他类型的可能约束(如裸约束:
其中TTypeB:TTypeA
)。谢谢大家!它起作用了。我会将此标记为答案,所以让我(显然我必须等待9分钟)但您有一行8-)不正确,只有一个约束可以放置,而无需其他类型
public void foo<TTypeA, TTypeB>() where TTypeA : class, A where TTypeB : class, B
 public void foo<TTypeA, TTypeB>() where TTypeA : class where TTypeB : class