Компилятор уже примитивами особых случаев во многих сценариях. Спасибо за предположение, но я ищу окончательный ответ.
.2 представилin
модификатор для передачи аргументов по ссылке с гарантией того, что получатель не изменит параметр.
Этотстатья говорит:
Вы никогда не должны использовать не-readonly структуру в качестве параметров in, потому что это может отрицательно повлиять на производительность и может привести к неясному поведению, если структура изменчива
Что это значит для встроенных примитивов, таких какint
, double
?
Я хотел бы использоватьin
выражать намерение в коде, но не за счет потерь производительности для защитных копий.
Вопросов
Безопасно ли передавать примитивные типы черезin
аргументы, а не защитные копии сделаны?Являются ли другие часто используемые каркасные структуры, такие какDateTime
, TimeSpan
, Guid
, ... считаетсяreadonly
JIT?Если это зависит от платформы, как мы можем узнать, какие типы безопасны в данной ситуации?