Избыточный вызов для возражения. ToString ()

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

10
задан Jarrod Dixon 23 April 2018 в 17:47
поделиться

4 ответа

+ оператор для строки перегружается для вызова Строки. Передача Concat в левой и правой стороне выражения. Таким образом:

string x = "123" + 45;

Компилируется в:

String.Concat("123", 45);

Начиная со Строки. Concat берет в двух объектах, правая сторона (45) упаковывается, и затем ToString () называют на нем.

Обратите внимание, что эта "перегрузка" не через оператор, перегружающийся на языке (иначе, это не метод, названный op_Addition), но обрабатывается компилятором.

19
ответ дан 3 December 2019 в 15:07
поделиться

Это не только плохая практика, но также и менее производительный: целое число должно быть упаковано потому что Строка. Concat ожид объект, в то время как интервал. ToString () не требует упаковки.

8
ответ дан 3 December 2019 в 15:07
поделиться

Это - допустимая плохая практика, как необходимо думать дважды, является ли переменная строкой или интервалом. Что, если переменную назвали бы myInt?

myInt = myInt + 23;

это более читаемо и понятно в этой форме?

myInt = mInt + "23";

или даже:

myInt = string.Format("{0}{1}", myInt, 23);

Мы знаем из кода, что это - строка и не целое число.

1
ответ дан 3 December 2019 в 15:07
поделиться

C# автоматически преобразовывает объекты в строки для Вас. Рассмотрите эту строку кода:

aString = aString + 23;

Это - допустимый C#; это компилирует вниз в вызов для Строкового представления. Concat (), который берет два объекта в качестве аргументов. Те объекты автоматически преобразовываются для строкового представления объектов для Вас.

То же самое происходит, когда Вы пишете:

aString += 23;

Снова, это компилирует вниз в тот же вызов для Строкового представления. Concat (); это просто записано по-другому.

2
ответ дан 3 December 2019 в 15:07
поделиться
Другие вопросы по тегам:

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