Compiler Error CS0562

The parameter of a unary operator must be the containing type

The method declaration for an operator overload must follow certain guidelines. For more information, see Operator overloading.

The following sample generates CS0562:

// CS0562.cs  
public class iii  
{  
    public static implicit operator int(iii x)  
    {  
        return 0;  
    }  
  
    public static implicit operator iii(int x)  
    {  
        return null;  
    }  
  
    public static iii operator +(int aa)   // CS0562  
    // try the following line instead  
    // public static iii operator +(iii aa)  
    {  
        return (iii)0;  
    }  
  
    public static void Main()  
    {  
    }  
}