Error del compilador CS0407

Actualización: noviembre 2007

Mensaje de error

'tipo de valor devuelto de método' es un tipo de valor devuelto equivocado
'return-type method' has the wrong return type

El método no es compatible con el tipo de delegado. Los tipos de argumentos coinciden, pero el tipo de valor devuelto no es el correcto para ese delegado. Para evitar este error, utilice un método diferente, cambie el tipo de valor devuelto del método o cambie el tipo de valor devuelto del delegado.

Ejemplo

El código siguiente genera el error CS0407:

// CS0407.cs
public delegate int MyDelegate();

class C
{
    MyDelegate d;

    public C()
    {
        d = new MyDelegate(F);  // OK: F returns int
        d = new MyDelegate(G);  // CS0407 – G doesn't return int
    }

    public int F()
    {
        return 1;
    }

    public void G()
    {
    }

    public static void Main()
    {
        C c1 = new C();
    }
}