Compiler Warning (level 3) CS0675

 

System_CAPS_ICON_note.jpg Observação

Para obter a última documentação sobre o C#, visite o Guia do C# em docs.microsoft.com.

Operador bitwise or usado em um operando de assinatura estendida. Considere a conversão em um tipo menor sem assinatura primeiro

O compilador implicitamente alargado e sinal- estendido uma variável, e então usado no valor resultante de uma operação OR bit a bit. Isso pode resultar em um comportamento inesperado.

O seguinte exemplo gera CS0675:

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

Mostrar: