QuickWatch 无法正常显示 Nullable 属性的“.ToString()”

2023-11-22

我有一个可为 null 的整数属性在 VB.NET 中。
代码中的此属性具有正确的值,但在QuickWatch始终显示1,除非我用一个值开头,然后显示六个洋地黄数字。

我的代码是:

Public Property MyNumber As Integer?

MyNumber = 6546

MessageBox.Show(MyNumber.ToString())

QuickWatch1

And for 可空的双重属性 in QuickWatch始终显示4/94065645841247E-324.

QuickWatch2

我测试这个.Net 4 & 4.5 on visual studio 2010 & 2013并得到相同的结果。不过C#没有这个问题

EDIT:

I append my project result too, as you see in watch windows both of them is shown QuickWatch3

为什么会出现这种情况?

EDIT:

此问题存在于 .Net 4、4.5 和 4.5.1 中。用.Net 2.0和3.5都没有问题


经确认,这确实是调试器中的一个错误。我搜索了 connect.microsoft.com,没有找到类似的东西,这并不是一个让很多 VB.NET 程序员感到震惊的错误。这并不完全令人惊讶,只有当您将 .ToString() 附加到可为空的变量名称时才会出错。从来没有人这样做过。

这不是您可以在此站点上获得任何帮助的错误,而是 Microsoft 需要修复的错误。

稍微描述一下这个 bug,这似乎是在调试器内置的 VB.NET 特定表达式解析器中出现的问题。您无法在 C# 项目中重现此问题的原因。为什么进程的位数并不重要,64 位调试器也会显示错误的值。一般来说,这是一段变化无常的代码,微软一直在努力将其淘汰。基本问题是他们必须在调试器中构建相当于 VB.NET 编译器的组件,以便可以解析这些表达式。但有限制的是,该解析器几乎不支持整个语言。副作用是调试器运行的代码可能与您的程序运行的代码不同。

Nullable(Of T).ToString() 的代码生成相当棘手,它需要条件装箱转换。解析器会针对任何此类表达式进行错误处理,请注意如何MyNumber.GetHashCode()也会产生错误的值。和MyNumber.Equals(5456.0)。需要装箱转换的表达式类型。

从技术上讲,您也可以在 connect.microsoft.com 上报告此错误,但我不建议花时间。如前所述,微软一直在努力淘汰这个解析器,这最终发生了。由 Roslyn 提供支持,这是一种可在任何地方使用的编译服务。它已集成到 VS2015 中,据了解调试器也使用它。不是 100% 确定,9 天后我就会知道 VS2015 何时发布。也许安装了 beta/RC 版本的人可以通过评论进行确认。

更新:确认已在 VS2015 上修复。

同时,在您可以更新之前,解决方法是停止对快速/监视表达式中的可为空变量使用 ToString()。这是越野车。

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

QuickWatch 无法正常显示 Nullable 属性的“.ToString()” 的相关文章

  • 使用 F5 时,finally 似乎没有在 C# 控制台应用程序中执行

    int i 0 try int j 10 i catch IOException e finally Console WriteLine In finally Console ReadLine 在VS2008中按F5时 finally块似乎
  • 服务层设计。将事物放入服务层的原因

    我有一些与设计相关的问题 should service layer interfaces居住在一个domain layer 例如user service 将代码部分移动到单独层的主要原因是什么 should service layer居住在
  • Visual Studio 2022 - 编译旧应用程序时出错

    我们正在尝试在 Visual Studio 2022 中使用 VB6 32 位应用程序 编译 2002 年以来非常旧的应用程序 我们需要调试此应用程序并能够在 Windows 10 计算机上运行此应用程序 编译时 我们发现以下错误 这似乎是
  • Scala:类似 Option (Some, None) 但具有三种状态:Some、None、Unknown

    我需要返回值 当有人询问值时 告诉他们以下三件事之一 这是值 没有价值 我们没有关于该值的信息 未知 情况 2 与情况 3 略有不同 示例 val radio car radioType 我们知道该值 返回无线电类型 例如 pioneer
  • 并行应用程序的可变与不可变[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在我正在编写的应用程序中 我需要编写大量基本类型 这些类型很可能是不可变的 但我想知道并行应用程序中可变类型与不可变类型的比较如何 您可以对可变
  • IL 的仿制药?

    是否可以在 IL 生成器中使用泛型 DynamicMethod method new DynamicMethod GetStuff typeof int new Type typeof object ILGenerator il metho
  • 正则表达式不等于字符串

    我用正则表达式用头撞墙 我正在尝试定义一个表达式 该表达式完全排除此文本 System 不区分大小写 但可以包含 系统 这个词提供的不仅仅是这个 例子 系统 无效 系统 无效 系统 无效 系统 无效 asd 系统 有效 asd 系统 asd
  • Confuser .NET 混淆器。安全吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我目前正在开发一个应用程序 其中阻止用户反编译代码非常重要 现在 我意识到 如果由经验丰富的程序员执行 大多数 exe 都是可反编译的
  • 命名空间“Microsoft”中不存在类型或命名空间名称“Practices”

    我正在使用 Microsoft Visual Studio 2005 for c 我的代码中有以下命名空间 using Microsoft Practices EnterpriseLibrary using Microsoft Practi
  • ASP.NET MVC 中 ModelState.AddModelError 中的关键参数有什么意义?

    我在我的控制器中添加了验证检查来修改ModelState如果验证失败 例如 private bool ValidateMoney string raw string name decimal min decimal max try var
  • 如何在没有 Visual Studio 的情况下将新文件添加到 .csproj 文件

    如何添加新文件到 csproj从命令提示符 我认为没有任何工具可以响应命令行上的 add project 命令来执行此操作 但我认为您可以幸运地创建一个程序 脚本来直接操作 csproj 文件的 XML 内容 csproj 文件的结构如下所
  • 托管 .NET 代码中的“访问冲突写入位置...”

    我收到以下异常 MqSearch exe 中 0x000007FE21AFE593 mscorlib ni dll 处出现未处理的异常 0xC0000005 写入位置 0x00000006609476FD 时出现访问冲突 代码是完全托管的
  • 找不到 Microsoft.Office.Interop Visual Studio

    我正在开发一个使用 C 发送电子邮件的应用程序 该应用程序将能够使用邮件模板等 问题是我无法找到任何 Office Interop 引用 这意味着我无法使用 Outlook 我的计算机上安装了 Office 但我也尝试从此链接安装 PIAh
  • 如何在 Visual Studio 中更改 Azure 数据库表的列顺序

    我整个下午都在寻找在 MS Visual Studio 2022 中重新排序 Azure 数据库表列的方法 没有运气 在其他应用程序中 可以通过拖动或剪切和粘贴轻松重新排列列 这里无能为力 此时 我什至不确定可以在 VS 中移动列 我只对
  • C# - 方法必须有返回类型

    我在调用 C 中的方法时遇到问题 不断收到消息 方法 计算 必须有返回类型 using System Diagnostics namespace WindowsFormsApplication1 public partial class F
  • 使用实体框架重叠约会

    我将 asp net mvc 与实体框架一起使用 我有一个包含 startat 字段 endat 字段和 roomid 字段 称为 SpaceConfigurationId 的约会列表 并且希望查找给定房间已重复预订的约会列表 可以假设 e
  • 主游戏循环中的时间计算

    Quake 2 主游戏循环实现中有这样的代码 if initialized let base retain 16 bits of effectively random data base timeGetTime 0xffff0000 ini
  • 随机数但不重复

    我想生成一个小于 50 的随机数 但一旦生成该数字 我希望它不能再次生成 谢谢您的帮助 请参见 费舍尔 耶茨洗牌 http en wikipedia org wiki Fisher E2 80 93Yates shuffle public
  • 某些笔记本电脑中的 VB.net Forms UI 显示问题

    我是 VB 应用程序的新手 无法弄清楚我的应用程序出了什么问题 有一个带有几个标签和文本字段的表单 当我在我和其他人的机器上运行该应用程序时 它显示良好 并具有正确的对齐和字体 然而 对于某些人来说 应用程序表单 UI 是破碎的 未对齐的文
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht

随机推荐

  • Flutter - 在没有 Firebase 身份验证的情况下将 Firebase 通知推送给特定用户

    我正在使用 Firebase 来推送通知 并且我不在我的应用程序上使用 Firebase 身份验证 我有自己的系统 我没有找到这个问题的答案 是否可以在没有 Firebase 身份验证 因此没有 UID 的情况下使用 Firebase 将通
  • 每个 DocumentStore 的 WaitForNonStaleResults

    有没有办法告诉RavenDb对某些DocumentStore或DocumentSession的所有查询使用WaitForNonStaleResults模式 您可以使用DefaultQueryingConsistency Consistenc
  • 如何使用python和Opencv读取视频文件

    我正在使用 python 2 7 和 opencv2 4 读取 avi 文件 我使用的是 windows 10 我的示例代码是 import numpy as np import cv2 cap cv2 VideoCapture video
  • 将 ObjectMapper 声明为 bean 有什么好处?

    假设我只想要一个简单的实例ObjectMapper目的 将其声明为 bean 有什么好处吗 Bean public ObjectMapper objectMapper return new ObjectMapper 为什么不直接制作一个新的
  • 扫描仪与 BufferedReader

    据我所知 在Java中从文件中读取基于字符的数据的两种最常见的方法是使用Scanner or BufferedReader 我也知道BufferedReader通过使用缓冲区来有效地读取文件 以避免物理磁盘操作 我的问题是 Does Sca
  • 阻止 OS X 使用 Python 进入睡眠状态?

    有没有办法防止运行 OS X 的计算机在 Python 脚本中进入睡眠状态 您可以使用内置的咖啡因酸盐命令 subprocess Popen caffeinate 这就是我的使用方式 import sys import subprocess
  • 如何提高 IIS / ASP.Net 的启动性能

    我正在使用一个特别慢的虚拟网络主机 名称保留 其中磁盘性能可能非常糟糕 因此 第一次访问我的 ASP Net 网站可能需要 1 分钟以上的时间才能加载 初始加载后 一切都在 RAM 中 一切正常 我想知道是否有人知道如何指示 IIS 预加载
  • Epplus SetPosition图片问题

    我在用Epplus库在 Asp Net C 中生成 Excel 2010 及更高版本兼容的文件 我使用的是目前最新的版本 3 1 2 在添加任何图片之前 我首先设置行高 ExcelPackage pck new ExcelPackage v
  • IdHttp 只需获取响应代码

    我正在使用 idhttp Indy 进行一些网站检查 我想要它做的就是在发送请求后检查服务器的响应代码 我不想实际上必须从服务器接收 HTML 输出 因为我只监视 200 OK 代码 任何其他代码意味着存在某种形式的问题 我查阅了 idht
  • iPad 方向更改问题

    我的 iPhone 应用程序在 iPad 上运行时显示一些关于支持方向更改的奇怪行为 该应用程序以视图控制器 为了论证起见 将其称为视图 A 和导航控制器启动 并且 shouldAutorotateToInterfaceOrientatio
  • 如何获取 WPF 窗口的静态引用?

    我尝试了很多方法来在程序中获取窗口的静态引用 我需要在运行时从不同的类访问其所有成员 因此需要静态引用 我想要的是类似的东西Program Window1 where Core是静态的并且MyWindow是其静态成员之一 在 WinForm
  • 如何在应用程序启动时运行回调?

    我知道 Android 的 Activity 模型与我通常认为的 应用程序 有点不同 当我的应用程序 启动 时 我想做一些事情 在这种情况下 检查服务器上的一些通知并显示它们 如果可用 实现这一目标的好方法是什么 我可能不想在活动的 OnC
  • FX 19 中组合框焦点问题

    升级到最新的 JavaFX 版本 19 后 我遇到了一些奇怪的问题 如果我将最后一个选项设置为 ComboBox 中的值 那么在第一次打开时 如果我选择任何选项 下拉列表将不会隐藏 之后 下拉菜单将像往常一样工作 奇怪的是 只有当我将最后一
  • 为什么javascript getMonth 从 0 开始计数,getDate 从 1 开始计数?

    这个问题纯粹是为了满足我的好奇心 在 JavaScript Date 对象中 当您调用getMonth 它返回月份 但从 0 开始计数 0 January 1 February 但当你打电话时getDate 它从 1 开始计数 1 1 2
  • 类中的 pthread 函数

    假设我有一堂课 例如 class c void print void cout lt lt Hello 然后我有一个 c 向量 vector
  • 如何在 C#/Windows 窗体中翻转/旋转标签?

    如何在 C 中翻转 旋转标签Windows 窗体 我将背景图像设置为我的标签 在每个时间间隔 它都会向右侧移动三个像素 当它到达表格结束位置时 我需要将标签翻转并转回 我尝试了以下方法 但没有得到解决方案 private void time
  • 设置字段以在更新时自动插入时间戳?

    我有一张桌子 上面有DEC字段命名product price我想添加一个名为price updated date 有没有办法设置表自动插入当前时间戳product price字段已更新 如果没有 是否有办法将其设置为在条目更新时插入当前时间
  • Postgres 选择 BTREE 而不是 BRIN 索引

    我正在运行 Postgres 9 5 并正在使用 BRIN 索引 我有一个大约有 1 5 亿行的事实表 我正在尝试让 PG 使用 BRIN 索引 我的查询是 select sum transaction amt sum total amt
  • Vue,js中如何计算两个输入值并将结果放入另一个输入字段中?

    这是我的输入字段
  • QuickWatch 无法正常显示 Nullable 属性的“.ToString()”

    我有一个可为 null 的整数属性在 VB NET 中 代码中的此属性具有正确的值 但在QuickWatch始终显示1 除非我用一个值开头 然后显示六个洋地黄数字 我的代码是 Public Property MyNumber As Inte