コンパイラの警告 (レベル 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
}
}