Zobacz poniższy kod, po prostu chcę, aby zrozumieć powód, że ...dlaczego CLR nie kompiluje przepełnienia const, ale dla zmiennych to robi?
const int a = 2147483647;
const int b = 2147483647;
int c = a + b; // it doesn't allow to compile!!!
int a = 2147483647;
int b = 2147483647;
int c = a + b; // it allows to compile!!!
Po prostu przypuszczam, ale z pewnością dlatego, że są one stałe, a kompilator może stwierdzić, że po dodaniu * będą * przepełnione, podczas gdy ze zmienną traktuje wartości jako nieznane. – MadSkunk
Nota boczna: CLR nie kompiluje kodu źródłowego C#, jest to kompilator C#. –