Sdílet prostřednictvím


Compilerwarnung (Stufe 3) CS0675

Aktualisiert: November 2007

Fehlermeldung

Bitweiser OR-Operator wird für einen signaturerweiterten Operanden verwendet. Es wird empfohlen, zuerst eine Umwandlung in einen kleineren unsignierten Typ durchzuführen.
Bitwise-or operator used on a sign-extended operand; consider casting to a smaller unsigned type first

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