使用英语阅读

通过


编译器警告(等级 2)CS0278

“type”不实现“pattern name”模式。 “method name”具有“method name”歧义。

C# 中的多条语句依赖于定义的模式,例如 foreachusing。 例如,foreach 语句依赖于实现“enumerable”模式的集合类。

如果编译器由于歧义而无法完成匹配,则会出现 CS0278。 例如,“enumerable”模式需要名为 MoveNext的方法,而你的代码可能包含两个名为 MoveNext的方法。 编译器将尝试查找一个要使用的接口,但建议你确定并解决歧义的起因。

示例

下面的示例生成 CS0278:

// CS0278.cs  
using System.Collections.Generic;  
public class myTest
{  
   public static void TestForeach<W>(W w)
      where W: IEnumerable<int>, IEnumerable<string>  
   {  
      foreach (int i in w) {}   // CS0278  
   }  
}