如何使用通用接口作为通用约束?

时间:2016-10-27 09:47:16

标签: c# linq generics

我想使用以下代码(例如):

public static IEnumerable<SomeGenericType> append_list<T>(T a, T b) where T : IEnumerable<SomeGenericType>
{
    return a.Concat(b);
}

文档说明使用通用接口约束是可能的:

https://msdn.microsoft.com/en-us/library/d5x73970.aspx

  

其中T:   type参数必须是或实现指定的接口。可以指定多个接口约束。约束接口也可以是通用的。

但我真的不明白如何使这些代码工作,

1 个答案:

答案 0 :(得分:3)

您必须指定第二个参数:

public static IEnumerable<SomeGenericType<M>> append_list<T, M>(T a, T b) 
     where T : IEnumerable<SomeGenericType<M>>
{
      ...
}