たとえば、BigIntegerを使用している場合、チェックされていないコンテキストが機能しないことに気づきました。
unchecked
{
// no exception, long1 assigned to -1 as expected
var long1 = (long)ulong.Parse(ulong.MaxValue.ToString());
}
unchecked
{
var bigInt = BigInteger.Parse(ulong.MaxValue.ToString());
// throws overflow exception
var long2 = (long)bigInt;
}
なぜそうなのか、何か考えはありますか?大きな整数を他のプリミティブ整数型に変換する方法に何か特別なものはありますか?
ありがとう、