編譯器警告 (層級 2) CS0278
'type' 未實作 'pattern name' 模式。 'method name' 與 'method name' 模稜兩可。
C# 中有幾個依賴已定義模式的陳述式,例如 foreach
和 using
。 例如,foreach
陳述式依賴實作「可列舉」模式的集合類別。
如果編譯器因為模稜兩可而無法比對,就可能發生 CS0278。 比方說,「可列舉」模式要求具有稱為 MoveNext
的方法,而您的程式碼可能包含稱為 MoveNext
的兩個方法。 編譯器會嘗試尋找一個介面來使用,但仍然建議您判斷並解決模稜兩可的原因。
下列範例會產生 CS0278:
C#
// 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
}
}