2012-05-19 2 views
0

Назад в VB6, вы были в состоянии повторно присвоить значение строковое к себе плюс другие строковые значения, такие как:VB.NET назначая значение строки ---- String1 = String1 + String2

str_Duplications_Line = str_Duplications_Line & pRow_Prime.Value(i_FieldNum) 

сейчас , IntelliSense не выбирает его в качестве ошибки, ни компилятор жалуюсь, но когда он бежал, оно бомбы вне на этой линии, и другие множественные линии, такие как эти:

str_Duplications_Line = str_Duplications_Line & "," 

str_Duplications_AllFields = str_Duplications_AllFields + str_Duplications_Line + vbCrLf 

Любая идея, почему это и как я могу это исправить? Или, по крайней мере, имитировать то же самое в VB.NET?

+4

«Бомбы»? Есть ли ошибка? Ошибки обычно содержат полезную информацию о том, что пошло не так. Оба оператора '+' и '&' могут использоваться для конкатенации строк. Немного связано: http://stackoverflow.com/questions/3006153/vb-net-ampersand-vs-plus-for-concatenating-string – David

+0

Что вы подразумеваете под 'bombs out'? Какую ошибку вы получаете? – jams

ответ

3

Вот различию между & и +

"abc" + "def" = "abcdef" 
"abc" & "def" = "abcdef" 
"111" + "222" = "111222" 
"111" & "222" = "111222" 
"111" & 222 = "111222" 
"111" + 222 = 333 
"abc" + 222 = conversion error 

Если какой-либо один из операндов равен нулю, вы можете получить сообщение об ошибке.

+1

Конечно, если у вас есть опция Strict On '" 111 "+ 222' и' "abc" + 222' не будет компилироваться –

+0

@MattWilko: Oh !!! Полностью забыли об этом. Спасибо чувак... –

2

Убедитесь, что вы не пытаетесь объединить нуль в строку

+1

Я сделаю заявление if-then, чтобы убедиться, что оно не присваивает nulls спасибо! –

+0

Но разве это не законно, чтобы объединить нуль в строку в VB? AFAICR null обрабатывается как пустая строка "" – MarkJ

Смежные вопросы