проверка ничего не предупреждает, что я могу использовать унитарные переменные. Способы подавить? - PullRequest
1 голос
/ 31 октября 2010

В Visual Studio 2008, когда я использую что-то похожее на следующий фрагмент:

Dim myVar
.... ' all sorts of stuff that might initialise myVar '
if not isNothing(myVar) then
   myVar = new Object()
end if
myVar.ToString()

Visual Studio предупреждает меня о последнем утверждении, что myVar может быть неинициализирован, и может возникнуть исключение нулевой ссылки.

Мне кажется желательным подавить это сообщение в этой ситуации.

  1. Прав ли я, желая подавить это предупреждение здесь, или я что-то упускаю?
  2. Можно ли здесь подавить предупреждение.

Обратите внимание, что я не хочу подавлять предупреждение вообще, только если я уверен, что здесь нет смысла.

Ответы [ 2 ]

1 голос
/ 31 октября 2010

Я думаю, что если вы измените строку:

Dim myVar 

На:

Dim myVar = Nothing

Предупреждение исчезнет.

Другая проблема заключается в том, что вына самом деле не следует объявлять вещи как Dim myVar, в этом случае это должно быть Dim myVar As Object.Вы всегда должны устанавливать Option Explicit On в VB.Net.Это избавит вас от множества потенциальных трудностей при поиске ошибок в будущем.

1 голос
/ 31 октября 2010

Прав ли я, желая подавить это предупреждение здесь, или я что-то упускаю?

Нет, вы не правы.Если есть условие под ведьмой, переменная может не инициализироваться, у вас возникнут проблемы.Поэтому было бы лучше всегда инициализировать переменные:

Dim myVar as SomType = Nothing
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...