Предупреждение компилятора (уровень 3) CS0675
Обновлен: Ноябрь 2007
Сообщение об ошибке
Побитовый оператор "ИЛИ" применен к операнду, расширенному знаком; рекомендуется предварительное приведение к меньшему беззнаковому типу
Bitwise-or operator used on a sign-extended operand; consider casting to a smaller unsigned type first
Компилятор неявно расширил знаком переменную, а затем использовал результирующее значение в побитовой операции ИЛИ. Это может привести к непредвиденному поведению.
Следующий пример приводит к созданию предупреждения 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
}
}