C# Error CS1677 – Parameter {0} should not be declared with the ‘{1}’ keyword

C# Error

CS1677 – Parameter {0} should not be declared with the ‘{1}’ keyword

Reason for the Error & Solution

Parameter ‘number’ should not be declared with the ‘keyword’ keyword

This error occurs when the parameter type modifier in an anonymous method does not match that used in the declaration of the delegate, to which you are casting the method.

Example

The following sample generates CS1677:

// CS1677.cs  
delegate void D(int i);  
class Errors  
{  
    static void Main()
    {  
        D d = delegate(out int i) { };   // CS1677  
        // To resolve, use the following line instead:  
        // D d = delegate(int i) { };  
  
        D d = delegate(ref int j){}; // CS1677  
        // To resolve, use the following line instead:  
        // D d = delegate(int j){};  
    }  
}