C# Error
CS1662 – Cannot convert {0} to intended delegate type because some of the return types in the block are not implicitly convertible to the delegate return type
Reason for the Error & Solution
Cannot convert anonymous method block to delegate type ‘delegate type’ because some of the return types in the block are not implicitly convertible to the delegate return type
This error occurs if the anonymous method block’s return statement had a type that was not implicitly convertible to the return type of the delegate.
The following sample generates CS1662:
// CS1662.cs
delegate int MyDelegate(int i);
class C
{
public static void Main()
{
MyDelegate d = delegate(int i) { return 1.0; }; // CS1662
// Try this instead:
// MyDelegate d = delegate(int i) { return (int)1.0; };
}
}