Допустим у меня есть инициализированная строка string s.
Являются ли следующие операторы эквивалентными в плане поведения? Генерируется ли разный IL мне не важно.
// 1
s = s + "";
// 2
s = s ?? "";
// 3
s = $"{s}";
Если в каких-либо случаях есть отличия, то, пожалуйста, укажите их.
Да, все три выражения дают один и тот же результат при одинаковых параметрах.
Различие могло быть только в обработке значения null, но во всех трех выражениях null будет заменен - пустой строкой.
Являются ли следующие операторы эквивалентными в плане поведения?
Это как спрашивать: Являются ли следующие действия одинаковыми:
4+2+2
4*2
6+2
Нет. Действия разные. Хотя результат одинаковый.
Так что: Нет. Операторы разные и действия разные соответственно. Конкретно в даном случае РЕЗУЛЬТАТЫ будут эквивалентны. Результаты. Но не операторы. :)
Поведение, собственно тоже будет немного отличатся. Вполне возможно что некоторые из этих вариантов будет немного быстрее (хотя они все быстрые). Но существенной разницы ты вряд ли получишь, даже, на детализированных тестах.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости