Leer en inglés

Compartir a través de


Advertencia del compilador (nivel 2) CS0280

'tipo' no implementa el patrón 'nombre de patrón'. 'nombre de método' tiene una signatura incorrecta.

Dos instrucciones de C#, foreach y using, dependen de los patrones predefinidos "colección" y "recurso", respectivamente. Esta advertencia se produce cuando el compilador no puede hacer coincidir una de estas instrucciones con su patrón debido a la signatura incorrecta de un método. Por ejemplo, el patrón "colección" requiere que haya un método denominado MoveNext que no tome ningún parámetro y devuelva un valor boolean. El código podría contener un método MoveNext que tenga un parámetro o quizás devuelva un objeto.

El patrón "recurso" y using proporcionan otro ejemplo. El patrón "recurso" necesita el método Dispose . Si se define una propiedad con el mismo nombre, aparecerá esta advertencia.

Para resolver la advertencia, asegúrese de que las signaturas de los métodos del tipo coinciden con las signaturas de los métodos correspondientes del patrón y que no tiene ninguna propiedad con el mismo nombre que un método requerido por el patrón.

Ejemplo

El ejemplo siguiente genera la advertencia CS0280.

C#
// CS0280.cs  
using System;  
using System.Collections;  
  
public class ValidBase: IEnumerable  
{  
   IEnumerator IEnumerable.GetEnumerator()  
   {  
      yield return 0;  
   }  
  
   internal IEnumerator GetEnumerator()  
   {  
      yield return 0;  
   }  
}  
  
class Derived : ValidBase  
{  
   // field, not method  
   new public int GetEnumerator;  
}  
  
public class Test  
{  
   public static void Main()  
   {  
      foreach (int i in new Derived()) {}   // CS0280  
   }  
}