Объявление Visual Basic 6.0 в VB.NET

Как мне объявить "как любой" в VB.NET, или каков эквивалент?

5 ответов

Самое близкое, что вы можете получить:

Dim var as Object

Он не совсем такой же, как VB6, как Any (который хранит значения в Variant), но вы можете хранить переменные любого типа как Object, хотя и в штучной упаковке.

VB.NET не поддерживает как любое ключевое слово, VB.NET является строго типизированным языком, однако вы можете (с.NET 3.5) использовать неявную типизацию в VB

Dim fred = "Hello World" будет неявно печатать fred как строковую переменную. Если вы хотите просто сохранить значение, тип которого вы не знаете во время разработки, вы можете просто объявить свою переменную как объект (мать всех объектов). ПРИМЕЧАНИЕ. Обычно это красный флаг для рецензентов кода, поэтому убедитесь, что у вас есть веская причина готова:-)

As Any должен ссылаться на объявления Windows API, поскольку его нельзя использовать в объявлениях переменных. Вы можете использовать перегрузку: просто повторите объявления для каждого типа данных, которые вы хотите передать. VB.NET выбирает тот, который соответствует аргументу, который вы передаете в своем вызове.

Это лучше, чем As Any был в VB6, потому что компилятор все еще может выполнять проверку типов.

Я полагаю, у вас есть проблемы с преобразованием объявлений WinAPI. Иногда вы можете уйти, если просто объявите свою переменную как строку или целое число, потому что это реальный тип возвращаемого значения.

Вы также можете попробовать маршалинг:

 ByRef buff As Object

VB.NET не поддерживает ключевое слово "как угодно". Вам нужно будет явно указать тип.

Другие вопросы по тегам