如何检查我是否处于已检查的上下文中?

2023-11-26

我如何使用 C# 代码知道我是否处于checked无论是否有上下文,都不会导致/捕获OverflowException,会带来性能损失吗?


块之间的唯一区别是checked vs unchecked是编译器生成的用于基本值类型算术运算的IL指令。换句话说,以下各项之间没有明显的差异:

checked {
  myType.CallSomeMethod();
}

and

myType.CallSomeMethod();

但是假设有一个算术运算,例如将两个整数相加。您需要获取该方法的 IL 指令,并检查您的方法调用周围的指令是否已检查,即使这也远非万无一失。您无法判断您的自定义操作是否实际上位于检查块内,或者只是被不在内部的检查块包围。

即使捕获异常也不起作用,因为您无法区分这两种情况:

checked {
  int a = (Some expression that overflows);
  myType.CallSomeMethod();
}

and

checked {
  int a = (Some expression that overflows);
}
myType.CallSomeMethod();

这可能是为什么Decimal类型不尝试检测checked vs unchecked而总是抛出OverflowException.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检查我是否处于已检查的上下文中? 的相关文章

  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • 将 Powerpoint 演示嵌入到 C# 应用程序中

    我希望能够将 powerpoint 演示文稿嵌入到 C 表单 WinForms 中 基本上我们有一台 52 英寸的显示器 其想法是在一个角落循环播放 PPT 然后其他 3 个角落将显示程序本身的信息 我原以为这会很简单 但看来我错了 有人建
  • Windows 文件路径路径中的空格

    我正在使用 python 进行文件操作 我的文件路径为 filepath E ABC SEM 2 testfiles all txt 当我使用 python 打开文件时 它说 IOError No such file 但是 该文件存在于驱动
  • 如何在重定向到外部页面之前在 jquery 中预加载(缓存)该页面?

    我正在做一个phonegap应用程序 我有一个 index html 页面 其中有一个重定向到网站应用程序的登录按钮 当点击登录按钮时 我想要一个加载 gif 来显示页面 正在被缓存 预加载并在完成后重定向到页面 我希望有一个示例脚本代码
  • 改变material-ui按钮的字体大小,并让按钮缩放?

    我似乎在更改 Material UI 用于 React RaishedButton 上的字体大小以及让按钮本身与其正确缩放时遇到问题
  • Visual Studio 中的静态和动态链接

    我理解静态和动态链接的概念 据了解 在Windows平台上 dll是动态库和 lib是静态库 我的困惑 我做了一个必须使用 OpenCV 库的项目 基本上 我必须使用以下 5 个 OpenCV 库 lopencv core lopencv
  • jQuery $.post 和 json_encode 返回一个带有引号的字符串

    我正在使用 jQuery 的 post 调用 它返回一个带有引号的字符串 引号是由 json encode 行添加的 如何阻止添加引号 我在 post 通话中遗漏了什么吗 post getSale php function data con
  • 检查表是否存在[重复]

    这个问题在这里已经有答案了 我有一个桌面应用程序 其中嵌入了数据库 当我执行程序时 我需要检查特定的表是否存在 如果不存在则创建它 给定我的数据库的名为 conn 的 Connection 对象 我如何检查它 DatabaseMetaDat
  • JavaScript 执行连接到 mongoHQ shell 失败

    尝试直接访问 MongoHQ gt mongo mongodb heroku email protected 10046 myapp MongoDB shell version 2 4 3 connecting to mongodb her
  • 是否可以通过编程方式清除控制台历史记录?

    使用控制台应用程序时 在某个位置输入的所有内容的历史记录Console ReadLine 被储存了 当控制台提示输入某些内容时 按向上 向下光标将滚动浏览此历史记录 并且可以通过按 F7 查看整个历史记录 使用 C 是否有办法禁用此行为或清
  • 从 YouTube 网址获取持续时间

    我正在寻找一个函数 可以从 url 中提取视频的 YouTube 持续时间 我读了一些教程但不明白 我使用网址在我的网站上嵌入视频 并且我有一个提取缩略图的功能 我只想要类似的东西来获取持续时间 这是我如何获得拇指 function get
  • iOS:应用程序内购买管理多个自动续订订阅,具有升级和降级选项

    我们正在为 iPhone 开发一款 iOS 应用程序 该应用程序将具有免费功能 并且该应用程序将具有高级功能 其中有 4 个应用程序内购买自动续订订阅选项 如下所示 单月订阅 单年订阅 家庭包月 家庭每年订阅 我们将在应用程序内有一个商店屏
  • Flask 下载文件

    我正在尝试使用 Flask 创建一个网络应用程序 让用户上传文件并将其提供给另一个用户 现在 我可以将文件上传到上传文件夹正确 但我似乎找不到一种方法让用户下载回来 我将文件名存储到数据库中 我有一个为数据库对象提供服务的视图 我也可以删除
  • 在 Jenkins 从节点上运行的 Jenkinsfile 中执行 docker build 命令的最简单方法?

    我希望 Jenkinsfile 执行的操作的基本示例 node sh docker build t foo bar 看来我需要将 docker 安装到正在执行 Jenkinsfile 的 Jenkins 从属映像上 有一个简单的方法可以做到
  • 关闭来自服务器的 akka-http websocket 连接

    在我的场景中 客户端发送 再见 websocket 消息 我需要关闭之前在服务器端建立的连接 来自 akka httpdocs 通过从服务器逻辑取消传入连接 Flow 可以关闭连接 例如 通过将其下游连接到 Sink cancelled 将
  • contenteditable 无法在 IE 10 中工作

    我正在尝试创建客户端可编辑表 这是我的代码 它适用于 Chrome Firefox 但不适用于 IE 还有什么与 IE 脚本有关的吗
  • 如何使用java压缩文件夹本身

    假设我有以下目录结构 D reports january 假设一月份有两个 Excel 文件 分别为 A xls 和 B xls 有很多地方都写过如何使用压缩文件java util zip 但我想将 january 文件夹本身压缩到 rep
  • Base64 背景图像多行?

    是否可以放base64背景图像是多行而不是一长行 如果是这样 怎么办 我当前的主体 CSS 是 body background color FFFFFF background image url data image png base64
  • WPF:使用效果显示和隐藏 ItemsControl 中的项目

    我一直在使用这篇很棒的文章作为显示和隐藏具有过渡效果的元素的基础 它工作得非常巧妙 因为它可以让你绑定Visibility属性就像平常一样 然后定义当可见性发生变化时会发生什么 例如 设置其不透明度的动画或触发故事板 当您隐藏某个元素时 它
  • 如何向下滑动 div 然后 .fadeIn() 内容,反之亦然?

    Goal 当用户单击该按钮时 相关 div 将 滑下 stop 淡入内容 当用户再次单击该按钮时 div 将 fade out stop slide up 当前位置 这是一个示例 其中fadeIn and fadeOut发生在正确的时间 但
  • 如何检查我是否处于已检查的上下文中?

    我如何使用 C 代码知道我是否处于checked无论是否有上下文 都不会导致 捕获OverflowException 会带来性能损失吗 块之间的唯一区别是checked vs unchecked是编译器生成的用于基本值类型算术运算的IL指令