Объявление непринятой переменной в C# не помечено ошибкой - попытка присвоить недопустимое значение переменной. Например, вот переменная, которая определенно не назначена (если это локальная) после объявления:
uint z;
-1 не является допустимым значением для UINT больше, чем 0,5 является, поэтому ваш пример Wouldn Компиляция.
Теперь, как и для остальных: целые числа просто обертываются при переполнении - так же, как добавление 1 к int.MaxValue
возвращает int.MinValue
. Это значительное улучшение производительности за счет того, что программа проверяет каждую операцию на переполнение - за счет потенциально не обнаруживающей ошибки.
Это только если вы находитесь в неконтролируемом контексте, заметьте - если вы выполняете любую из этих операций в проверенном контексте, вместо этого вы получите исключение. Например;
class Test
{
static void Main()
{
checked
{
uint a = 5;
uint b = 6;
uint c = a - b;
}
}
}
Run, что и вы увидите OverflowException
вышвырнут. Если это то, что вы хотите для всего проекта, вы можете установить его в свойствах проекта (или скомпилировать с опцией командной строки /checked+
до csc
.)
EDIT: Стоит отметить, что другие ответы показали, что вы можете поставить меньшее количество кода в проверяемом контексте - просто объявление и присвоение c
или даже просто расчет. Все это довольно гибко.
То же касается для улонга – Llyle 2008-10-26 21:29:31