首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Err.Number (VB6与C#)

Err.Number (VB6与C#)
EN

Stack Overflow用户
提问于 2010-09-17 15:36:08
回答 3查看 4.5K关注 0票数 6

我使用了Artinsoft的VB6到.NET向导将VB6应用程序转换为C#,并且在以前使用Err.Number的任何地方都会收到升级警告;

//升级_警告:(2081) Err.Number有了新的行为。

转换代码指的是;

代码语言:javascript
复制
Microsoft.VisualBasic.Information.Err().Number

我还没搞清楚有什么区别。有人知道这可能是什么吗?还是忽略这个警告是安全的?

更新

对于将来偶然发现这个问题的人来说--一个警告词;在C# .NET应用程序中继续使用.NET是不安全的。该属性仍然可用,但未按预期在错误后填充。唯一按预期填充该错误的情况是,错误来自COM组件。

正常的错误--例如DB访问、IO操作等--不会给Err().Number带来任何价值,因此它的使用必须不幸地被重构。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-24 21:33:27

基本上,Microsoft.VisualBasic.Information.Err().Number支持Err.Number属性,它的工作原理与VB6中的基本相同,但是当升级到C#时,没有正确地填充Err.Number,您不应该依赖它。

唯一确定设置错误号的情况是,错误由COM互操作组件生成,在这种情况下,您可以检查异常的InnerException成员中的错误号。

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

问候

票数 4
EN

Stack Overflow用户

发布于 2010-09-17 20:50:32

从2000年10月开始的VB6 Err.Number描述

Returns or sets a numeric value specifying an error. Number is the Err object's default property. Read/write.

VB.NET Err.Number的MSDN描述

Returns or sets a numeric value specifying an error. Read/write.

来自10月2000 MSDN的备注是在VB.NET的在线版本中逐字复制的,包括示例。两人之间似乎没有什么不同。

票数 1
EN

Stack Overflow用户

发布于 2010-09-17 20:53:11

也许所用的数字已经改变了?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3736766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档