如何比较两个对象,就好像选项严格是关闭一样



我有一个 VB.NET 项目(VB 2012,.NET Framework 4.5),我需要比较两个Object的相等性。具体来说,它是一些处理 ADORecordset对象的 COM 互操作代码,RecordsetBookmark属性是 COMVariant,它在 VB.NET 中变成了Object

目前,我有Option Strict Off,它让我可以使用=运算符比较Object。但是,我想为该文件Option Strict On,只是在需要它的几个地方进行"宽松"的比较。此 MSDN 页面的"使用关系比较运算符进行无类型编程"部分解释了 VB 如何实现ObjectOption Strict Off之间的比较,我可以编写一个函数来做同样的事情。但似乎很可能已经在 .NET 中的某个地方实现了"宽松"比较,我不想重新实现轮子。有没有已经能做到我想要的东西?

查看生成的 IL,当Option Strict Off应用时objectA = objectB编译为

Microsoft.VisualBasic.CompilerServices.Operators.ConditionalCompareObjectEqual(objectA ,objectB ,False)

因此,当您知道这两种类型都作为对象出现时,您应该能够直接使用该函数。

您当然需要测试。

相关内容

最新更新