2008-09-16 130 views

回答

0

VB.NET不支持「As Any」關鍵字。您需要明確指定類型。

3

你可以得到的最接近的是:

Dim var as Object

這不完全一樣VB6的是任何(存儲在變量值),但你可以存儲任何類型的變量作爲對象,雖然盒裝。

3

VB.NET不支持任何關鍵字,VB.NET是強類型語言,但是,您可以(與.NET 3.5)使用隱式類型在VB

暗淡弗雷德=「Hello World」的意志隱式輸入fred作爲字符串變量。如果你想簡單地持有一個你不知道設計時的類型的值,那麼你可以簡單地將你的變量聲明爲對象(所有對象的母親)。注意,這通常是代碼審閱者的紅旗,所以確保你有一個很好的理由:-)

+0

如果您啓用了Option Strict,則需要在聲明變量時指定類型。 – Kogitsune 2012-05-30 16:03:49

1

我想你有轉換WinAPI聲明的問題。有時你可以逃脫,如果你只是聲明你的變量爲字符串或整數,因爲這是返回值的真正類型。

您也可以嘗試編組:

 
<MarshalAsAttribute(UnmanagedType.AsAny)> ByRef buff As Object 
3

正如任何必須參照Windows API的聲明,因爲它不能在變量聲明中使用。您可以使用重載:重複您希望傳遞的每種不同數據類型的聲明。 VB.NET會挑選出與您在調用中傳遞的參數相匹配的參數。

這比As Any在VB6中更好,因爲編譯器仍然可以進行類型檢查。