Errore del compilatore CS0564

Aggiornamento: novembre 2007

Messaggio di errore

Il tipo di cui dispongono il primo operando di un operatore di spostamento di overload e il tipo contenitore deve essere uguale e il tipo del secondo operando deve essere int
The first operand of an overloaded shift operator must have the same type as the containing type, and the type of the second operand must be int

Si è tentato di eseguire l'overload di un operatore di spostamento (<< o >>) con operandi tipizzati in modo non corretto. Il primo operando deve essere il tipo, mentre il secondo deve essere il tipo int.

Il seguente codice di esempio genera l'errore CS0564:

// CS0564.cs
using System;
class C
{
   public static int operator << (C c1, C c2) // CS0564
// To correct, change second operand to int, like so:
// public static int operator << (C c1, int c2)
   {
      return 0;
   }
   static void Main() 
   {
   }
}