User-defined operator cannot take an object of the enclosing type and convert to an object of the enclosing type
User-defined conversions to values of the enclosing class are not allowed; you do not need such an operator.
The following sample generates CS0555:
public class MyClass { // delete the following operator to resolve this CS0555 public static implicit operator ii(ii aa) { // CS0555 return new ii(); } public static void Main() { } }