是否有任何意义避免在Mono中使用“不安全”?

时间:2011-05-23 17:36:02

标签: c# mono unsafe

我最近遇到过这样一个事实:在使用C#/ Mono中的某些概念时,我需要指定“不安全”选项。我不仅需要在我的代码中指定选项,我还必须在编译时指定它,这会调用“此代码本质上不安全且使用风险”的感觉。这里奇怪的是DllImport不需要不安全标志,所以我可以在我的“安全代码”中创建我想要的段错误。有没有理由避免我忽略的不安全代码?

1 个答案:

答案 0 :(得分:7)

对于大多数C#开发人员来说,DllImport是一个众所周知的概念。它还导致可能发生段错误的相对较小的区域。使用unsafe代码,您可以更轻松地创建随机崩溃,并且在与unsafe调用无关的位置(通过操作您认为触摸的内存区域)。

这很像编译器警告 - 一些开发人员不关注它们,有些人将“将警告视为错误”转为“全部”。猜猜哪些代码更易于维护?

此外,DllImport本身不是一个好主意如果可以避免(因为潜在的破损/遗漏错误/可移植性问题等等)。