утилизации ЦПУ, памати, GC и прочего, следят ли за чистотой архитектуры, расчитывают O в алгоритмах в своем коде, code-coverage юнит тестами, посмотреть IL, который образовался ? мне кажется таких мало.
Кому надо, те и смотрят. А кому не надо, те железом заливают, потому что так проще.
всмысле увеличивают мощи целевого железа?)
> часто ли разработчики на .Net смотрят профайлинг inclusive/exclusive блоков по утилизации ЦПУ, памати, GC и прочего Пахнет преждевременой оптимизацией > посмотреть IL, который образовался А что там можно интересного можно увидеть? Я просто не в курсе, реально интересно
ну я вот например всегда думал, что string это нормальный ссылочный тип, и операции с ним будут ровно такие же, как и для всех ссылочных типов. Но нет, вот такой пример заставил меня посмотреть в IL код int Main() { var s = "Hello"; ChangeMyString(s); Console.Write(s); } public void ChangeMyString(string input) { input = "World"; } на выходе дает Hello, вместо World
Такое вроде в доках пишут
А если бы был не string, то результат другой получился бы, да?
да, тут требуется ref , чтобы корректно работало
Вопрос с подвохом если что
Ну как бы, причем тут string?
Эквивалентный код с классом. https://sharplab.io/#v2:EYLgxg9gTgpgtADwGwBYA0AXEUCuA7AHwAEAmABgFgAoUgRmuoDcBDKAAgAcYoBnCPNgF42eGAHc2ABW588ACgBEASRZ4FASgDc1AMIALZngDmMALIBPab35yu1vFupFaATlsz+jqk5Rt9hkwsrWTlg/k4PBwBvajY4iPshEXEpSMUAKQg9NS8AXwYaAGY2WEgoABNU+zkAZQwoAEtjNgA5ZgBbGC0gA
string точно такой же ссылочный тип, как и другие, просто все методы которые "изменяют" его, возвращают новый объект
Эм, ну вообще всё время? Это и есть работа программиста.
Обсуждают сегодня