コンパイラの警告 (レベル 2) CS0279
'type name' は 'pattern name' パターンを実装しません。 'method name' が静的であるか、パブリックではありません。
C# には、 foreach
や using
など、あらかじめ定義されたパターンを使用するステートメントがいくつかあります。 たとえば、 foreach
には、列挙可能なパターンを実装したコレクション クラスが使用されます。 このエラーは、 static
として宣言されているか public
でないとして宣言されているメソッドが原因で、コンパイラが照合を処理できないときに発生します。 パターン内のメソッドは、クラスのインスタンスであり、パブリックであることが必要です。
次の例では、CS0279 が生成されます。
// CS0279.cs
using System;
using System.Collections;
public class myTest : IEnumerable
{
IEnumerator IEnumerable.GetEnumerator()
{
yield return 0;
}
internal IEnumerator GetEnumerator()
{
yield return 0;
}
public static void Main()
{
foreach (int i in new myTest()) {} // CS0279
}
}
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。