我正在寻找避免托管C++(CLI)溢出。在C#中有一个未经检查的关键字,在C++中,溢出不会以例外情况出现。什么是C#等效的C#检查
仅供参考,未经检查记录在here。基本上,如果你这样做:
unchecked
{
int1 = 2147483647 + 10; //this overflows in CLI but is ok in C# and C++
}
在C#中也不会溢出,但转换采取最低显著位为int。例如,当您计算散列码时,这是适当的。
注意:我意识到没有等效的C++关键字,但有些位移应该可以做到;
'unchecked'是默认行为(除非被编译器覆盖)。 – leppie
在托管的C++(CLI)中,您将遇到溢出异常。我在编辑这个问题。 –
@downvoters - 为什么? –