Compiler Error CS0590

User-defined operators cannot return void

The purpose of a user-defined operator is to return an object.

The following sample generates CS0590:

// CS0590.cs  
namespace x  
{  
   public class a  
   {  
      public static void operator+(a A1, a A2)   // CS0590  
      {  
      }  
  
      // try the following user-defined operator  
      /*  
      public static a operator+(a A1, a A2)  
      {  
         return A2;  
      }  
      */  
  
      public static int Main()  
      {  
         return 1;  
      }  
   }  
}