コンパイラの警告 (レベル 2) CS0279

更新 : 2007 年 11 月

エラー メッセージ

型名' は、パターン名' パターンを実装しません。'メャbド名' は、スタティックであるか、またはパブリックではありません。

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
    }
}