Error del compilador CS1731

Actualización: noviembre 2007

Mensaje de error

No se puede convertir 'expression' en delegado porque algunos de los tipos de valor devuelto del bloque no se pueden convertir implícitamente en el tipo de valor devuelto del delegado
Cannot convert 'expression' to delegate because some of the return types in the block are not implicitly convertible to the delegate return type.

Este error se genera cuando una expresión lambda o método anónimo tiene un tipo de valor devuelto que no es compatible con el tipo de valor devuelto del delegado.

Para corregir este error

  • Cambie el tipo de valor devuelto del delegado o la expresión.

Ejemplo

El código siguiente genera el error CS1731:

class CS1731
{
    delegate double D();
    D d = () => { return "Who knows the real sword of Gryffindor?"; };
}