Compiler Error CS1678

Parameter 'number' is declared as type 'type1' but should be 'type2'

This error occurs when the parameter type in an anonymous method is different from the declaration of the delegate you are casting the method to.

The following sample generates CS1678:

// CS1678  
delegate void D(int i);  
class Errors
   static void Main()
      D d = delegate(string s) { };   // CS1678  
      // To resolve, use the following line instead:  
      // D d = delegate(int s) { };