Compiler Error CS0563

One of the parameters of a binary operator must be the containing type

The method declaration for an operator overload must follow certain guidelines.

Example

The following sample generates CS0563:

// CS0563.cs
public class iii
{
    public static implicit operator int(iii x)
    {
        return 0;
    }
    public static implicit operator iii(int x)
    {
        return null;
    }
    public static int operator +(int aa, int bb)   // CS0563 
    // Use the following line instead:
    // public static int operator +(int aa, iii bb)    
    {
        return 0;
    }
    public static void Main()
    {
    }
}