更新:2007 年 11 月

错误消息

“type”不实现“pattern name”模式。“method name”与“method name”混淆。

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

当编译器由于多义性无法进行匹配时,会发生 CS0278。例如,“enumerable”模式要求有一个名为 MoveNext 的方法,而您的代码可能包含两个名为 MoveNext 的方法。编译器将尝试找到一个接口来使用,但建议您找出导致二义性的原因并加以解决。

有关更多信息,请参见 如何:使用 foreach 访问集合类(C# 编程指南)

示例

下面的示例生成 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
   }
}