Есть ли безопасный способ объявить строковую переменную в Visual Basic? - PullRequest
0 голосов
/ 07 марта 2012

При работе с PHP я всегда объявлял свою строковую переменную и устанавливал ее равной нулю, чтобы быть в безопасности.Я новичок в Visual Basic и мне интересно, какой самый безопасный способ объявить строковую переменную.Хватит ли

Dim strWords As String

?Или лучше установить его на ноль или ничего, или какое-либо другое значение по умолчанию или тип примитива?

Ответы [ 3 ]

3 голосов
/ 07 марта 2012

По умолчанию strWords будет равно Nothing по умолчанию.

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

Если вам нужно проверить, не пуста ли строка или ничего, вы можете сделать:

If Not String.IsNullOrEmpty(strWords) Then
2 голосов
/ 07 марта 2012

Лучший способ объявить строковую переменную - установить ее в пустую строку сразу после объявления. Для большинства разработчиков .NET это распространенная ошибка - устанавливать строку в "" или Nothing. Это неправильно, потому что "" на самом деле не является пустой строкой для .NET CLR, и ничто не может вызвать исключение NullReferenceException, если вы ссылаетесь на эту строку позже в коде. Ниже приведен правильный код для объявления строки:

Dim str As String = "" ' <--This is "not best practice"
Dim str2 As String = Nothing ' <--This is "not best practice"
Dim str3 As String = vbNullString ' <--This is "not best practice"
Dim str4 As String = String.Empty ' <--correct
0 голосов
/ 18 марта 2012

В .net и в VB.net лучший безопасный способ объявления строки - присвоить переменной имя типа. Например:

Dim MyString As System.String

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

Dim MyString = "hello world"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...