Объявление переменной 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
ключевое слово. Мои два цента - оставить это на усмотрение отдельного разработчика, однако многие люди, скорее всего, скажут, что нужно создать соглашение и следовать ему.
Я думаю, что первый (с объявлением типа переменной) будет самым безопасным в использовании. Если программа небольшая, это не будет иметь большого значения, но для более крупных программ может быть заметное отставание компилятора. Так что (по моему мнению) объявление типа является лучшим решением.