这个问题还是去年12月份在使用VS2010时发现的,之后报告给了Microsoft Connect(英语很差,见谅,不过发现Microsoft回复中也有两个英文单词拼写错误,难怪我金山词霸半天没查到:)),并得到确认会在以后进行修复。一直没时间写,今天拿来分享一下。
备注:微软将在3月10日发布Visual Studio SP1,不知这个小问题能否在这次更新中得到修复。
VS2010提供了一个新功能,DataTip。以前调试时,如果要看某一个变量的值,常常会用鼠标停留在一个变量上,则会给出一个提示来显示变量的值,但是鼠标移开后就看不到提示内容了。VS2010的DataTip功能则是为了让数据提示更方便的显示出来,将鼠标停留在某个变量上,然后会弹出提示框,接着如果点击提示框的最右边的箭头,则这个提示就会一直悬停住而不会消失,除非手动点击小叉关闭。对DataTip的介绍,可参考VS2010调试利器的第二部分关于调试数据提示(DataTip)的介绍,这里不再赘述。
Bug重现:如上所说,由于调试时可以用两种方式(鼠标悬停和DataTip)同时查看到变量的值,因此在使用过程中,发现在某些特殊情况下,两者的值显示不一致!我发现的导致这种不一致的情景是:当显示StringBuilder对象内容中有转义字符时,如下图:
通过多次测试,发现,DataTip当见到有转义字符时,进行了完整的转义,而鼠标悬停则只对部分转义字符进行转义,而部分不进行转义(\t、\b等反斜杠加英文字母的情况没转义),无论是什么规律,对于同一个对象,同一时刻,给出用户不同的调试信息,显然是有问题的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
2010-03-09 ASP.NET Sql Server安装向导(aspnet_regsql.exe)错误解决一例