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;
      }
   }
}