C#
Создаем новое C# консольное приложение... и напишем код
using System;
using System.Collections;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int ten = 10;
// Вариант 1
checked
{
int value1 = int.MaxValue + ten;
// Внимание! будет Exception
}
// Вариант 2
int value2 = checked(int.MaxValue + ten);
// Внимание! будет Exception
}
}
}
C#
На заметку 1!
Выражение, содержащее только константные значения, вызывает ошибку компилятора
если результат выходит за допустимые пределы типа.
class Program
{
static void Main(string[] args)
{
int value1 = int.MaxValue + 10;
// Ошибка компиляции! error CS0220: The operation overflows at compile time in checked mode
}
}
C#
На заметку 2!
Если выражение содержит одно или несколько неконстантных значений, компилятор
не выполняет проверку переполнения.
class Program
{
static void Main(string[] args)
{
int ten = 10;
int value1 = int.MaxValue + ten;
// результат value1 = -2147483639
}
}
C#
На заметку 3!
checked можно использовать внутри unchecked и наоборот
checked
{
unchecked
{
...
}
...
}