Объявление длинных строк, использующих интерполяцию строк в C # 6
Я обычно оборачиваю длинные строки, объединяя их:
Log.Debug("I am a long string. So long that I must " +
"be on multiple lines to be feasible.");
Это совершенно эффективно, так как компилятор обрабатывает конкатенацию строковых литералов. Я также считаю, что это самый чистый способ справиться с этой проблемой (варианты взвешиваются здесь).
Этот подход хорошо работал сString.Format
:
Log.Debug(String.Format("Must resize {0} x {1} image " +
"to {2} x {3} for reasons.", image.Width, image.Height,
resizedImage.Width, resizedImage.Height));
Тем не менее, я сейчас хочу никогда не использоватьString.Format
снова в этих ситуациях, так как интерполяция строк в C # 6 гораздо более читаема.Меня беспокоит то, что у меня больше нет эффективного, но чистого способа форматирования длинных строк.
У меня вопрос, может ли компилятор как-то оптимизировать что-то вроде
Log.Debug($"Must resize {image.Width} x {image.Height} image " +
$"to {resizedImage.Width} x {resizedImage.Height} for reasons.");
в вышесказанноеString.Format
эквивалентный или, если есть альтернативный подход, который я могу использовать, который не будет менее эффективным (из-за ненужной конкатенации), при этом сохраняя мой код четко структурированным (согласно пунктам, приведенным в ссылке выше).