DllImport - это хорошо известная концепция для большинства разработчиков на C #. Это также приводит к относительно небольшой области, где может произойти ошибка. С кодом unsafe
вы можете создавать случайные сбои намного проще, и в местах, не связанных с вызовом unsafe
(манипулируя областями памяти вне того, что, как вы думали, вы касались).
Это очень похоже на предупреждения компилятора - некоторые разработчики не обращают на них внимания, некоторые обращаются к «Все предупреждения как к ошибкам». Угадайте, что приводит к коду, который легче поддерживать?
Кроме того, сам DllImport не является хорошей идеей , если его можно избежать (из-за возможных поломок / пропущенных ошибок / проблем с переносимостью и т. Д.).