编译器警告(等级 2)CS0278
“type”不实现“pattern name”模式。 “method name”具有“method name”歧义。
C# 中的多条语句依赖于定义的模式,例如 foreach
和 using
。 例如,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
}
}