Error del compilador CS0446

Actualización: noviembre 2007

Mensaje de error

Foreach no puede funcionar en un 'Método o Delegado'. ¿Intentó invocar el 'Método o Delegado'?
Foreach cannot operate on a 'Method or Delegate'. Did you intend to invoke the 'Method or Delegate'?

Este error se produce al especificar un método sin paréntesis o un método anónimo sin paréntesis en la parte de la instrucción foreach donde normalmente colocaría una clase de colección. Tenga en cuenta que es válido, aunque no habitual, colocar una llamada de método en dicha ubicación, si el método devuelve una clase de colección.

Ejemplo

En el siguiente código se generará el error CS0446.

// CS0446.cs
using System;
class Tester 
{
    static void Main() 
    {
        int[] intArray = new int[5];
        foreach (int i in M) { } // CS0446
    }
    static void M() { }
}