Advertencia del compilador (nivel 2) CS0279
Actualización: noviembre 2007
Mensaje de error
'nombre de tipo' no implementa el modelo 'nombre de modelo'. 'nombre de método' es estático o no público.
'type name' does not implement the 'pattern name' pattern. 'method name' is either static or not public.
Hay varias instrucciones en C# que se basan en modelos definidos, como foreach y using. Por ejemplo, foreach se basa en la clase de colección que implementa el modelo enumerable. Este error se produce cuando el compilador no puede establecer la correspondencia debido a que se ha declarado un método como static o no public. Los métodos de los modelos tienen que ser obligatoriamente instancias de clases y públicos.
Ejemplo
El siguiente ejemplo genera la advertencia 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
}
}