Size: a a a

2021 July 04

A

Aloraman in pro.net
Да, vbc.exe
источник

Dv

Dr. Friedrich von Ne... in pro.net
Удивительно.
источник

E

EgorBo in pro.net
VBCSCompiler это кэш референс ассемблей вроде
источник

E

EgorBo in pro.net
ускоряет компиляцию
источник

D

Denisio in pro.net
razor-вьюшки компиляет
источник

A

Aloraman in pro.net
Собрал репро. И правда, подсвечивается красным enum из плюсового проекта, даже обычный класс в шарповом проекте если файл не с .cs расширением - тоже красный
Билдится нормально
Решарпер в студии тоже нормально это переваривает
Только в Rider беда... неужели ограничение Idea?
источник

V

Vyacheslav in pro.net
Интересная штука с readonly https://dotnetfiddle.net/sye4QJ
источник

V

Vyacheslav in pro.net
Даже предупреждений нет
источник

W

WhiteBlackGoose in pro.net
Ух ты. Сишарп не форсит immutability? и в нем нет const-методов и типов? Кто бы мог подумать
источник

AK

Andrei Kurosh in pro.net
О чем тут предупреждать? Readonly распространяется только на само поле, а не на содержимое лежащего в нем объекта - это такая же базовая семантика языка, как то что структуры передаются по значению и тд
источник

V

Vyacheslav in pro.net
если убрать readonly с struct и поля, то результат меняется.
источник

D

Denisio in pro.net
rider предупреждает https://i.tk-chel.ru/denisio/202107/04_181729.png
источник

AK

Andrei Kurosh in pro.net
Ну, если в некотором коде поменять struct на class, результат тоже может поменяться ;)
источник

AK

Andrei Kurosh in pro.net
Или если Dictionary на линейный поиск заменить
источник

V

Vyacheslav in pro.net
В .SetValue приходит struct без readonly в качестве this.
Т.е. неявно где-то выделяется (копия?) структуры, с которой работает SetValue.
источник

W

WhiteBlackGoose in pro.net
Eh? У тебя все методы у структуры с копией работают?)
источник

D

Denisio in pro.net
дело не в readonly же тут, а в том что при обращении к a происходит создание новой копии A, для которой вызываетя метод SetValue
источник

V

Vyacheslav in pro.net
нет. Убери readonly — получишь по ref
источник

AK

Andrei Kurosh in pro.net
Глянь на IL-код, это однозначно ответит на вопрос
источник

D

Denisio in pro.net
а блядь, readonly и правда меняет поведение
источник