Различие между + и и для того, чтобы присоединиться к строкам в VB.NET

Изменить на:

public static  boolean moreThanOnce(ArrayList<Integer> list , int number) {
    int count = 0;
    for (int i = 1; i < list.size(); i ++ ) {
        if (list.get(i) == number) {
            count ++;
            if (count > 1) {
                return true;
            }
        }
    }
    return false;
}

Это гарантирует, что оператор возврата (false) будет отправлен обратно, если либо нет повторяющегося числа, равного номеру, и если он также никогда не входит в цикл for , Он вернет истину, если поставленные вами условия будут выполнены.

66
задан Dan Atkinson 9 January 2014 в 11:39
поделиться

6 ответов

Нет разницы, если оба операнда являются строками. Однако, если один операнд является строкой, а один - числом,

86
ответ дан Peter Mortensen 24 November 2019 в 15:02
поделиться

Оператор & всегда гарантирует, что оба операнда являются строками,

13
ответ дан Guffa 24 November 2019 в 15:02
поделиться

Оператор + может быть либо сложением, либо конкатенацией. & Является только конкатенацией. Если оба выражения являются строками, результаты будут одинаковыми.

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

3
ответ дан dbasnett 24 November 2019 в 15:02
поделиться

В большинстве случаев нет никакой разницы. Тем не менее, лучшая практика:

«+» должен быть зарезервирован для целочисленных дополнений , потому что, если вы не используете Option Strict On , то вы, возможно, действительно перепутали ситуации например:

Input + 12 может дать вам 20 вместо 812 . Это может быть особенно плохо в приложении ASP.NET, где ввод поступает из POST / GET.

Проще говоря: Для объединения строк всегда используйте «&» вместо «+».

Очевидно, используйте StringBuilder , где это подходит:)

2
ответ дан Peter Mortensen 24 November 2019 в 15:02
поделиться

Если оба типа статически типизированы как System.String , разница между ними равна нулю код. Оба будут разрешены вплоть до члена String.Concat (это то, что + делает для строк).

Однако, если объекты строго не типизированы в строку, позднее Visual Basic Обвязка вступит в действие и пойдет двумя совершенно разными путями. Версия + попытается выполнить операцию add , которая буквально пытается добавить объекты. Это будет делать все попытки преобразовать оба значения в число, а затем добавить их.

Операторы и попытаются объединить. Среда выполнения Visual Basic пройдет все виды преобразований, чтобы преобразовать оба значения в строки. Затем будет Строка.

1
ответ дан Peter Mortensen 24 November 2019 в 15:02
поделиться

Нет при объединении строк:

    Dim string1 As String = "A" + "B"
    Dim string2 As String = "A" & "B"

    If string1.Equals(string2) And string2.Equals(string1) Then
        Debugger.Break()
    End If
0
ответ дан Gavin Miller 24 November 2019 в 15:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: