C# Error CS1660 – Cannot convert {0} to type ‘{1}’ because it is not a delegate type

C# Error

CS1660 – Cannot convert {0} to type ‘{1}’ because it is not a delegate type

Reason for the Error & Solution

Cannot convert anonymous method block to type ‘type’ because it is not a delegate type

This error occurs if you try to assign or otherwise convert an anonymous method block to a type which is not a delegate type.

The following sample generates CS1660:

// CS1660.cs  
delegate int MyDelegate();  
class C {  
   static void Main()  
   {  
     int i = delegate { return 1; };  // CS1660  
     // Try this instead:  
     // MyDelegate myDelegate = delegate { return 1; };  
     // int i = myDelegate();  
   }  
}