如何比较两个对象,就好像 Option Strict 关闭一样

Dav*_*ang 4 vb.net

我有一个 VB.NET 项目(VB 2012,.NET Framework 4.5),我需要比较两个Objects 的相等性。具体来说,它是一些处理 ADORecordset对象的COM Interop 代码,并且 a 的Bookmark属性Recordset是一个 COM Variant,它Object在 VB.NET 中变成了 an 。

目前,我有Option Strict Off,这让我可以Object使用=运算符比较s 。但是,我想转向Option Strict On该文件,并在需要它的少数几个地方进行“松散”比较。此 MSDN 页面的“使用关系比较运算符进行无类型编程”部分解释了 VB 如何实现Objects 与之间的比较Option Strict Off,我可以编写一个函数来做同样的事情。但似乎 .NET 中某处已经实现了“松散”比较,我不想重新实现轮子。有什么东西可以做我想做的事吗?

tol*_*anj 5

查看生成的IL,当Option Strict OffapplyobjectA = objectB被编译为

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

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

你当然需要测试。