我最近遇到了这样一个事实:在使用C#/ Mono中的某些概念时,我需要指定"不安全"选项.我不仅需要在我的代码中指定选项,我还必须在编译时指定它,这会调用"此代码本质上不安全且使用风险"的感觉.这里奇怪的是DllImport不需要不安全标志,所以我可以在我的"安全代码"中创建我想要的段错误.有没有理由避免我忽略的不安全代码?
对于大多数C#开发人员来说,DllImport是一个众所周知的概念.它还导致可能发生段错误的相对较小的区域.使用unsafe代码,您可以更轻松地创建随机崩溃,并且在与unsafe调用无关的位置(通过操作您认为正在触摸的内存区域).
这很像编译器警告 - 一些开发人员不关注它们,有些人将"将警告视为错误"变为"全部".猜猜哪些代码更容易维护?
此外,如果可以避免 DllImport本身并不是一个好主意(因为潜在的破损/遗漏错误/可移植性问题等).