Pull to refresh
47
-3
Никита Липилин @Firensis

Разработчик, руководитель, прокрастинатор

Send message

Зависит от ситуации) На эту тему писал статью "Всегда ли в C# есть упаковка при конкатенации со строкой и интерполяции?". Можете глянуть, если интересно)

Пока как можем) Возможно, в будущем что-то из этого будет автоматически разруливаться.

Оператор "?." не дал бы выполнить такой метод всё равно. Но если без него, то в теории да, могло быть и так. Но тогда и предупреждения анализатора бы не было, кстати.

О, интересное исследование) Ну, ничто не идеально, бывают такие вот осечки у разработчиков.

Ну, на эту тему в статье есть раздел "Оптимизации времени выполнения". Или мб какие-то конкретные примеры из статьи работают не так, как описано?

Ну вот и не совсем понятно, почему он превращает именно в string.Format, а не в Concat. Конечно, явно есть случаи, когда так сделать нельзя, но кажется, что почти всегда интерполяцию вполне можно записать как сумму строк.

Не могли бы вы поподробнее пояснить, что вы имеете ввиду? @ValeryIvanov спросил, почему компилятор превращает интерполяцию в string.Format, а не в обычное a + b + c. Что означает "компилятор уже потом оптимизирует string.Format"? Вы имеете ввиду JIT?

Ничего страшного, главное, что разобрались)

Тут штука вот в чëм: ToString в любом случае будет вызван. Либо у исходной переменной, либо у ссылки, полученной после упаковки. В статье же говорится о том, как упаковки избежать, имея исключительно вызов ToString.

В статье описано, что это зависит от того, подо что вы компилируете код. У вас net6?

Рад был помочь)

А вы действительно пробовали этот способ? Указанное вами событие, согласно документации, возникает, когда сборку загрузить не получилось.

А в указанном в статье случае она прекрасно загружается :).

Мы пробовали даже просто в начале Main загрузить сборку с указанием прямо конкретного пути, но она всё равно берётся из GAC.

Что вы имеете ввиду под "ставятся"? В проекте анализатора у нас указана именно версия пакета (они отличаются). На рантайме обычно бралась библиотека, которая лежала рядом с исполняемым файлом, то есть правильная. А тут нам особенности GAC нанесли удар)

Я тоже так подумал) Но maintainer MSBuild-а вроде достаточно уверено говорил, что это удобно и всё такое.

Нет проблем :). Если что, пишите, подскажем

Information

Rating
Does not participate
Location
Тула, Тульская обл., Россия
Date of birth
Registered
Activity