c# - 什么是 C# 检查的 C++ 等价物

标签 c# c++-cli overflow

我希望避免托管 C++ (CLI) 中的溢出。在 C# 中有一个未检查的关键字,在 C++ 中溢出不会以异常结束。

作为引用,未选中的记录在案here .基本上如果你这样做:

unchecked
{
      int1 = 2147483647 + 10; //this overflows in CLI but is ok in C# and C++
}

在 C# 中,它不会溢出,而是通过获取最低有效位转换为 int。例如,当您计算哈希码时,这是合适的。

注意:我意识到没有等效的 C++ 关键字,但一些位移应该可以解决问题;

最佳答案

您可以只在方法周围使用 #pragma unmanaged 来获得原生 C++ 中的正常未检查行为。

关于c# - 什么是 C# 检查的 C++ 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14500593/

相关文章:

c# - 为什么我不能在 C# 的结构中拥有相同的结构类型属性?

c# - 解析标记范围和未标记范围中的组件

c# - 从 C++/CLI 调用 C# dll 函数

css - 让 div 在 IE8 中有底部滚动条 - 尝试 2?

css - 溢出:IE7 中的自动调整大小时为滚动条留出空间

c# - 在 Json.Net 中反序列化 json 时忽略无效字段

c# - 将 native 缓冲区转换为 MemoryStream

c# - 用于 native C++ 的 C++/CLI 包装器,可在 C# 中用作引用

html - 如何使子 div 适合父级并仅在 Y 轴上滚动溢出文本

c# - 根据条件在 C# 中合并两个列表