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 Overloadable Operators and Operator Overloading Sample.

Example

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()
    {
    }
}