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