コンパイラの警告 (レベル 2) CS0278
'type' は、'pattern name' パターンを実装しません。 'method name' があいまいなため、'method name' と混同します。
C# には、 foreach
や using
など、あらかじめ定義されたパターンを使用するステートメントがいくつかあります。 たとえば、 foreach
ステートメントは、"列挙可能" なパターンを実装したコレクション クラスに依存します。
CS0278 は、あいまいな部分があるために、コンパイラが適切な仲介処理を実行できない場合に発生する可能性があります。 たとえば、"列挙可能な" パターンを処理するためには、 MoveNext
というメソッドが必要ですが、コンパイルの対象になるコードには、 MoveNext
メソッドが 2 つ存在している可能性があります。 コンパイラは、どちらのインターフェイスを使用するかについて検索を試行しますが、あいまいさの原因を突き止め、解決することをお勧めします。
次の例では 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
}
}
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。