One of the parameters of a binary operator must be the containing type
The method declaration for an operator overload must follow certain guidelines.
The following sample generates CS0563:
public class iii { public static int operator <<(int aa, int bb) { // CS0563 // try the following line instead // public static int operator <<(int aa, iii bb) { return 0; } public static void Main() { } }