Интерполяция строк
От: hardcase Пират http://nemerle.org
Дата: 23.10.16 22:13
Оценка: +3
Какой умник догадался таким замечательным образом компилировать интерполяцию строк...

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine($"Hello world from {nameof(Program)} class, {nameof(Main)} method.");
    }
}


...в String.Format?

internal class Program
{
  private static void Main(string[] args)
  {
    Console.WriteLine(string.Format("Hello world from {0} class, {1} method.", "Program", "Main"));
  }
}


Я был несказанно удивлен этому спецэффекту в глядя в профайлер.
/* иЗвиНите зА неРовнЫй поЧерК */
Отредактировано 23.10.2016 22:14 hardcase . Предыдущая версия .
Re: Интерполяция строк
От: VTT http://vtt.to
Дата: 23.10.16 22:39
Оценка:
А как оно должно было скомпилироваться по-вашему?
Говорить дальше не было нужды. Как и все космонавты, капитан Нортон не испытывал особого доверия к явлениям, внешне слишком заманчивым.
Re[2]: Интерполяция строк
От: Qbit86 Кипр
Дата: 23.10.16 22:41
Оценка: 5 (1) +4
Здравствуйте, VTT, Вы писали:

VTT>А как оно должно было скомпилироваться по-вашему?


Вероятно, автор предполагал, что должно было скомпилироваться в один литерал `"Hello world from Program class, Main method."`.
Глаза у меня добрые, но рубашка — смирительная!
Re: Интерполяция строк
От: _NN_ www.nemerleweb.com
Дата: 24.10.16 05:54
Оценка: 8 (1)
Здравствуйте, hardcase, Вы писали:

H>Какой умник догадался таким замечательным образом компилировать интерполяцию строк...


Уже есть обсуждение этого поведения: https://github.com/dotnet/roslyn/issues/11259
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: Интерполяция строк
От: Kolesiki  
Дата: 24.10.16 11:39
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Какой умник догадался таким замечательным образом компилировать интерполяцию строк...

H> Console.WriteLine(string.Format("Hello world from {0} class, {1} method.", "Program", "Main"));

Это неоптимизированный, но абсолютно корректный код. Хотя интерполяцию я б вообще не стал базировать на string.Format — для этого УЖЕ ЕСТЬ метод.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.