我使用 Artinsoft 的 VB6 到 .NET 向导将 VB6 应用程序转换为 C#,并且在之前使用 Err.Number 的任何地方都会收到升级警告;
//UPGRADE_WARNING: (2081) Err.Number 有一个新的行为。
转换后的代码是指;
Microsoft.VisualBasic.Information.Err().Number
我没有任何运气发现有什么区别。有谁知道它可能是什么,或者忽略这个警告是否安全?
更新
对于将来偶然发现这个问题的任何人 - 一个警告;在 C# .NET 应用程序中继续使用 Err.Number 是不安全的。该属性仍然可用,但是在出现错误后未按预期填充它。按预期填充的唯一情况是错误来自 COM 组件。
正常的错误,例如 DB 访问、IO 操作等,不会给 Err().Number 赋予任何价值,因此遗憾的是必须重构它的使用。
奇怪的是,在 VB .NET 中,它仍然可以按预期工作,因此在决定要转换的目标语言时,也许需要牢记这一点。