Объявление переменной VB.Net

Я заметил, что оба эти компиляции без каких-либо предупреждений или ошибок компилятора, даже с Option Strict а также Option Explicit оба включены:

    Dim x As Exception = New Exception("this is a test")
    Dim y = New Exception("this is another test")

Мой вопрос: правильнее ли использовать первый способ (см. Переменную x) или второй (см. Переменную y)? Я думаю, что VB не нуждается в As предложение, поскольку переменная инициализируется на месте, поэтому компилятор может определить тип.

Мне, как правило, нравится первый способ, так как он просто "чувствует себя правильно" и более соответствует другим языкам, таким как C#Интересно, есть ли какая-то веская причина для одного пути над другим? Я думаю, это действительно личный выбор.

4 ответа

Решение

Я бы сделал Dim x As New Exception("this is a test"), Лучшее в обоих мирах, никаких выводов, но вам нужно только набрать Exception один раз:)

Вот чудо Option Infer On, компилятор автоматически определяет тип "y". Доступно с VS2008. Вы получите искомую ошибку, выключив ее:

Option Strict On
Option Infer Off

Module Module1
    Sub Main()
        Dim x As Exception = New Exception("this is a test")
        Dim y = New Exception("this is another test")   ''# error BC30209
        Dim z As New Exception("this is a third test")
    End Sub
End Module

Option Infer это то, что контролирует эту функцию компилятора. Оба эквивалентны - это похоже на (спорный) C# дебаты о том, использовать ли var ключевое слово. Мои два цента - оставить это на усмотрение отдельного разработчика, однако многие люди, скорее всего, скажут, что нужно создать соглашение и следовать ему.

Я думаю, что первый (с объявлением типа переменной) будет самым безопасным в использовании. Если программа небольшая, это не будет иметь большого значения, но для более крупных программ может быть заметное отставание компилятора. Так что (по моему мнению) объявление типа является лучшим решением.

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