Size: a a a

var chat = new Chat();

2020 June 08

СС

Сонечка Сопилова... in var chat = new Chat();
источник

B

Bretbas in var chat = new Chat();
Etki
ОГОНЬ
в чем огонь то? Это давно уже
INotifyPropertyChanged Foddy давно уже генерит CIL
источник

B

Bretbas in var chat = new Chat();
Я писал либу, подобную Refit, которая генерит реализацию Http сервисов, работающих с rest
источник

NK

ID:0 in var chat = new Chat();
Делегаты в качестве альтернативы интерфейсам при внедрении зависимостей

https://christianfindlay.com/2020/05/15/c-delegates-with-ioc-containers-and-dependency-injection

#Delegates #IoC #Dependency #Injection #DI
источник

E

Etki in var chat = new Chat();
Bretbas
в чем огонь то? Это давно уже
INotifyPropertyChanged Foddy давно уже генерит CIL
ладно хорошо ВОДА
источник

E

Etki in var chat = new Chat();
но вообще это разные вещи
источник

Ts

Turok sUkA in var chat = new Chat();
ID:0
C#: Знакомство с генераторами исходного кода.

Мы рады представить вам превью генераторов исходного кода. Это новая возможность, которая позволяет разработчикам C# анализировать пользовательский код и создавать новые файлы C#, которые в свою очередь могут добавляться в процесс компиляции. Это происходит при помощи нового компонента — генератора исходного кода (Source Generator).

Подробности: http://msft.it/6270Tco2C
разве не то же, что и CodeDomProvider?
источник

E

Etki in var chat = new Chat();
я с этим на самом деле не очень знаком (только со стороны джавы, там давно можно внедриться на этапе компиляции, но немного уебищным способом), но насколько понимаю, CodeDomProvider вызывается в рантайме, а ключевая возможность генераторов - вцепиться прямо в этап компиляции, в результате чего генерируемый код "закрепляется" за исходным, в любом энвайронменте гарантируется, что один и тот же исходный код сам произведет один и тот же генерируемый код, при чем без каких-либо телодвижений со стороны компилирующего (и не удивлюсь, если к концу там будет вообще plug-and-play поддержка, указал зависимость с нугета и всё)
источник

Ts

Turok sUkA in var chat = new Chat();
а, ясно

зачем тогда вообще при компиляции цеплять, если можно просто писать код
источник

E

Etki in var chat = new Chat();
генерировать бойлерплейт, например. в той статье выше пример - это избавление от возможных несоответствий при указании роутов руками, чтобы какая-нибудь ошибка типа acto/r{id} случайно не пробралась через атрибут
источник

E

Etki in var chat = new Chat();
в джаве, где вместо MEF немного другая штука, с помощью аналогичного механизма можно делать автообнаружение классов - просто выцепляешь их по какому-то признаку и создаешь новый статичный, в который просто записываешь все нужные
источник

g

gavr in var chat = new Chat();
в шарпах string передается по ссылке, не копируется же?
источник

R

RA-TA-TATA in var chat = new Chat();
gavr
в шарпах string передается по ссылке, не копируется же?
ну в общем случае, да
источник

R

RA-TA-TATA in var chat = new Chat();
это же ссылочный тип
источник

g

gavr in var chat = new Chat();
насколько будет плохо если я вот эту пачку проверок вынесу в функцию, и буду отовсюду вызывать, передавая кучу срингов постоянно
источник

VL

Vova Lantsov in var chat = new Chat();
gavr
насколько будет плохо если я вот эту пачку проверок вынесу в функцию, и буду отовсюду вызывать, передавая кучу срингов постоянно
Плохо не будет
источник

R

RA-TA-TATA in var chat = new Chat();
gavr
насколько будет плохо если я вот эту пачку проверок вынесу в функцию, и буду отовсюду вызывать, передавая кучу срингов постоянно
будет хорошо
источник

g

gavr in var chat = new Chat();
RA-TA-TATA
это же ссылочный тип
это то да, но всякое бывает
источник

g

gavr in var chat = new Chat();
спасибо
источник

E

Etki in var chat = new Chat();
я бы только сделал какой-нибудь params string[] values, чтобы не вызывать на каждое отдельной строке одно и то же
источник