Compiler Error CS0556

User-defined conversion must convert to or from the enclosing type

A user-defined conversion routine must convert to or from the class that contains the routine.

The following sample generates CS0556:

// CS0556.cs  
namespace x  
{  
   public class ii  
   {  
      public class iii  
      {  
         public static implicit operator int(byte aa)   // CS0556  
         // try the following line instead  
         // public static implicit operator int(iii aa)  
         {  
            return 0;  
         }  
      }  
  
      public static void Main()  
      {  
      }  
   }  
}