C#では、代入の結果オーバーフローとなるような値を、メモリ上での表現を維持したまま代入したい場合はunchecked
を用います。
たとえば、値80000000(16) = 2147483648(10)はint
で扱える最大値を超えるため、これを単に代入しようとするとオーバーフローとなります。 一方、メモリ上での表現としての80000000(16)はint
として妥当な値です。 こういった場合は、unchecked
によってオーバーフローのチェックをせずに代入させることができます。
数値の型を明示するためにサフィックスを後置することもできます。 サフィックスを指定せず、var
による宣言を行う場合は、値の大きさに応じて型選択が行われます。