加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

.net – Err.Number(VB6与C#)

发布时间:2020-12-17 00:01:50 所属栏目:大数据 来源:网络整理
导读:我已经使用Artinsoft的VB6到.NET向导将VB6应用程序转换为C#,并且我在以前使用过Err.Number的任何地方都收到了升级警告. //UPGRADE_WARNING: (2081) Err.Number has a new behavior. 转换后的代码是指; Microsoft.VisualBasic.Information.Err().Number 我没
我已经使用Artinsoft的VB6到.NET向导将VB6应用程序转换为C#,并且我在以前使用过Err.Number的任何地方都收到了升级警告.

//UPGRADE_WARNING: (2081) Err.Number
has a new behavior.

转换后的代码是指;

Microsoft.VisualBasic.Information.Err().Number

我没有运气,找出差异是什么.有谁知道它可能是什么,或者忽略这个警告是否安全?

UPDATE

对于任何在将来偶然发现这个问题的人 – 一句警告;在C#.NET应用程序中继续使用Err.Number是不安全的.该属性仍然可用,但是在错误发生后没有按预期填充.如果错误来自COM组件,则唯一可以按预期填充它的情况.

正常错误例如数据库访问,IO操作等不会给Err().Number赋值,所以不幸的是它的使用必须重构.

奇怪的是,在VB .NET中,它仍然按预期工作,因此在决定转换的目标语言时,可能需要记住这一点.

基本上VB.NET支持Err.Number属性,它的工作方式与VB6完全相同,但是当升级到C#时,Microsoft.VisualBasic.Information.Err().数字没有正确填充,你不应该依靠它.

唯一确定错误号的方案是,当COM互操作组件生成错误时,在这种情况下,您可以检查异常的InnerException成员中的错误号.

您应该转换.NET异常的所有Err.Number用法,并修改逻辑以使用结构化错误处理正确运行.

问候

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读