Compiler Warning (level 3) CS0675

Bitweiser Operator OR wird für einen signaturerweiterten Operanden verwendet. Es wird empfohlen, zuerst eine Umwandlung in einen kleineren unsignierten Typ durchzuführen.

Der Compiler hat eine Variable implizit erweitert und signaturerweitert und den sich daraus ergebenden Wert in einer bitweisen OR-Operation verwendet. Dies kann unerwartetes Verhalten verursachen.

Im folgenden Beispiel wird CS0675 generiert:

// CS0675.cs  
// compile with: /W:3  
using System;  

public class sign  
{  
   public static void Main()  
   {  
      int hi = 1;  
      int lo = 1;  
      long value = (((long)hi) << 32) | lo;              // CS0675  
      // try the following line instead  
      // long value = (((long)hi) << 32) | ((uint)lo);   // correct  
   }  
}