2017-03-08 13 views
2

我有一個VB.NET工程(VB 2012的.NET Framework 4.5),我需要平等比較兩個Object秒。具體地講,它是正在處理ADO Recordset對象的一些COM互操作代碼和RecordsetBookmark屬性是COM Variant,它被變成在VB.NET的Object如何比較兩個對象,就好像選項嚴格離家時

目前,我有Option Strict Off,這讓我使用=操作比較Object秒。但是,我想要將Option Strict On作爲文件,只需在需要的地方進行「鬆散」比較。在「無類型編程與關係比較運算符」的this MSDN page部分介紹了VB如何實現Object S之間的比較與Option Strict Off,我可以寫一個函數來做到同樣的事情。但似乎在.NET的某個地方已經實現了「鬆散」的比較,我不想重新實現這個輪子。有什麼東西會已經做我想要的嗎?

+0

您可以比較使用[是](https://msdn.microsoft.com/en-us/library/kb136x1y.aspx)關鍵字對象。 – Bugs

+0

@Bugs You_can_,但當Option Strict爲Off時,它不會與=操作符進行相同類型的比較。 'Is'比較兩個對象引用,但我想比較兩個值,例如,存儲在類型爲Object的變量中的兩個'Integer'。 –

+0

對不起,我明白了。那麼是不理我。我在比較對象,而不是對象的屬性。 – Bugs

回答

3

望着IL產生的,當Option Strict Off適用objectA = objectB被編譯成

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

因此,你應該能夠當你知道這兩種類型都進來作爲對象直接使用該功能。

你當然需要測試。