编译器警告(等级 2)CS0278
更新:2007 年 11 月
错误消息
“type”不实现“pattern name”模式。“method name”与“method name”混淆。
在 C# 中有若干语句依赖定义的模式,如 foreach 和 using。例如,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
}
}