Freigeben über


Compilerwarnung (Stufe 2) CS0279

'Typname' implementiert das Muster 'Mustername' nicht. 'Methodenname' ist entweder statisch oder nicht öffentlich.

Es gibt mehrere Anweisungen in C#, die auf definierten Muster aufsetzen, z. B. foreach und using. Beispielsweise setzt foreach auf der Auflistungsklasse auf, die das „enumerable“-Muster implementiert. Dieser Fehler tritt auf, wenn der Compiler den Abgleich aufgrund einer Methode, die als static oder nicht publicdeklariert ist, nicht vornehmen kann. Methoden in Mustern müssen Instanzen von Klassen und öffentlich sein.

Beispiel

Im folgenden Beispiel wird der Fehler CS0279 generiert:

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