我有一个 VB.NET 项目(VB 2012,.NET Framework 4.5),我需要比较两个Object
的相等性。具体来说,它是一些处理 ADORecordset
对象的 COM 互操作代码,Recordset
的Bookmark
属性是 COMVariant
,它在 VB.NET 中变成了Object
。
目前,我有Option Strict Off
,它让我可以使用=
运算符比较Object
。但是,我想为该文件Option Strict On
,只是在需要它的几个地方进行"宽松"的比较。此 MSDN 页面的"使用关系比较运算符进行无类型编程"部分解释了 VB 如何实现Object
与Option Strict Off
之间的比较,我可以编写一个函数来做同样的事情。但似乎很可能已经在 .NET 中的某个地方实现了"宽松"比较,我不想重新实现轮子。有没有已经能做到我想要的东西?
查看生成的 IL,当Option Strict Off
应用时objectA = objectB
编译为
Microsoft.VisualBasic.CompilerServices.Operators.ConditionalCompareObjectEqual(objectA ,objectB ,False)
因此,当您知道这两种类型都作为对象出现时,您应该能够直接使用该函数。
您当然需要测试。