Объявление длинных строк, использующих интерполяцию строк в 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 эквивалентный или, если есть альтернативный подход, который я могу использовать, который не будет менее эффективным (из-за ненужной конкатенации), при этом сохраняя мой код четко структурированным (согласно пунктам, приведенным в ссылке выше).

Ответы на вопрос(4)

Ваш ответ на вопрос