2011-11-18 143 views
4

在Visual Basic 6中,有無論如何告訴一個變量是否是一個對象? 我希望能夠測試變量是否爲null,什麼也不是,但是隻有對象可以使用「Is Nothing」來測試。 任何想法?VB6檢查變量是否爲對象

+2

您可以考慮使用'IsNull'。 – vcsjones

回答

6

函數是如何定義的?

如果是... As Object那麼它是一個有效的對象或Null

如果是... As Variant(或無類型),那麼什麼都可以通過,你可以檢查使用IsEmpty()IsNull()(注意,不是一個空對象,但空值)或IsObject()取決於你要檢查之前到底是什麼... Is Nothing檢查。

如果參數是Optional那麼您可以使用IsMissing()但它必須是一個沒有默認值的變體類型。

另外,請查看this article關於VB中Null的各種用法。

+0

感謝您的全面回答,函數參數是一個無類型的變體,IsObject是我所需要的。 – Mike

4
IsObject(variable) 

不難發現

+0

我不知道我是怎麼沒有發現的,我接受deanna作爲'更好'的答案,但upvoted你的答案以及。謝謝 – Mike

1

有一個TypeOf運營商在VB。所有不是簡單的值(即Integer等)的類型都是Object

If TypeOf Variable Is Object Then 
    ' ... 
End If 

TypeOf還允許繼承檢查。例如,Outlook文件夾中的郵件項目都是ObjectOutlook.MailItem,因此您可以通過這種方式對泛型變體變量進行實際的類型安全檢查。

注意If TypeOf ...不起作用與被分類爲簡單的值(即整數)的變量,只有對象類型的變量(變體,COM對象,內置對象)。

+1

請注意類型/ UDT也不算作對象。 – Deanna

+0

@Deanna:謝謝你的提示。 – Tomalak

0

對於Variant參數,您還可以使用VarType()函數及其關聯的Enum。