LayoutKind.Explicit — это ровно тот же unsafe, и то, что компилятор при его использовании не требует соответствующего ключевого слова — это, скорее, недоработка авторов языка. Аналогично Marshal и т.д.
Я отвечал про режим сборки. Так-то если копать то весь .net в конечном итоге опирается на unsafe методы… важнее, конечно, знания вида «будет ли это работать не в fulltrust»…
А так-то я, конечно, согласен с комментарием.
Чё-то почти все задачи из серии «как почесать левой пяткой правое ухо».
Ну разве что четвёртая еще туда-сюда, но тоже жутчайшая синтетика: 99% С#-пистов вручную GC не зовут никогда.
Всё что «просто» описано всюду (я даже одну из ссылок привёл для примера). Разве это интересно?)
GC вызван для демонстрации (ну не ждать же его в демо?).
2 интересна для понимания того как оно работает
5 просто нужно знать, с этим сталкивался не раз.
6 полезная штука, применял на практике (для хранения цвета, с «бесплатным» доступом как к байтовым компонентам ARGB, так и в виде uint — производительность была очень важна, и этот подход хорошо помог)
> Можно ли создать программу, где используется await для метода, который не помечен как async?
Всё гораздо проще, даже не нужно выдумывать новые классы:
Дело в том, что на возможность await влияет не факт того, помечен или нет целевой метод как async, а возвращаемый тип. Поэтому я бы назвал эту задачу: «Можно ли await метод, который возвращает не Task?».
Вообще, спасибо, что подняли тему асинхронности. Грустно в последнее время видеть различные туториалы, которые используют I/O (в особенности, сеть) и не используют асинхронность. Учитывая, насколько удобным и прозрачным получился паттерн async/await, в C# подобные вещи, реализованные синхронно, имхо, должны считаться моветоном :)
6 простых вопросов по C# с подвохом