Vb.net 如何在关闭选项时比较两个对象

Vb.net 如何在关闭选项时比较两个对象,vb.net,Vb.net,我有一个VB.NET项目(VB 2012,.NET Framework 4.5),我需要比较两个对象s是否相等。具体地说,它是一些处理ADO记录集对象的COM互操作代码,记录集的Bookmark属性是一个COM变体,在VB.NET中变成了一个对象 目前,我有选项Strict Off,它允许我使用=操作符比较对象。但是,我想对文件启用选项Strict,只在需要的几个地方进行“lax”比较。的“使用关系比较运算符进行无类型编程”部分解释了VB如何使用选项Strict Off在对象之间实现比较,我可以

我有一个VB.NET项目(VB 2012,.NET Framework 4.5),我需要比较两个
对象
s是否相等。具体地说,它是一些处理ADO
记录集
对象的COM互操作代码,
记录集
Bookmark
属性是一个COM
变体
,在VB.NET中变成了一个
对象


目前,我有
选项Strict Off
,它允许我使用
=
操作符比较
对象。但是,我想对文件启用
选项Strict,只在需要的几个地方进行“lax”比较。的“使用关系比较运算符进行无类型编程”部分解释了VB如何使用
选项Strict Off
对象
之间实现比较,我可以编写一个函数来完成同样的操作。但在.NET中似乎已经有了“lax”比较的实现,我不想重新实现轮子。有什么东西可以做我想做的吗?

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

Microsoft.VisualBasic.CompilerServices.Operators.ConditionalCompareObject相等(objectA、objectB、False)

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


当然,您需要进行测试。

您可以使用关键字来比较对象。@BUG您可以,但当“严格”选项处于禁用状态时,这与=运算符的比较类型不同
Is
比较两个对象引用,但我想比较两个值,例如,存储在Object类型变量中的两个
Integer
s。啊,抱歉,我明白了。是的,那就别理我。我在比较对象,而不是对象上的属性。