這可能只是一個口味的問題,但我想知道是否有一個「推薦」的方式來比較Object
類型的變量(可能是Nothing
或有一個不同於String
的動態類型)轉換爲VB.NET中的字符串字面值。VB.NET:比較一個對象到字符串文字
以下選項顯然是行不通的:
If myObject = "Hello World" Then ...
- 不會編譯If myObject Is "Hello World" Then ...
- 測試參考平等,這是錯誤的If myObject.Equals("Hello World") Then ...
- 拋出一個異常如果myObject是NothingIf DirectCast(myObject, String) = "Hello World" Then ...
- 如果myObject不是字符串,則拋出異常
因此,唯一(簡單的單表達)溶液我能找到是使用
If "Hello World".Equals(myObject) Then ...
看起來有點笨拙我。除了進行類型檢查或明確檢查Nothing
之外,我是否錯過任何明顯的替代方法?
(當然,我們談論Option Strict On
)
謝謝。與Guido的解決方案相比,使用String.Compare(...)= 0`有什麼優勢? – Heinzi 2011-02-02 10:22:32