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

最佳答案

对于大多数C#开发人员而言,DllImport是一个众所周知的概念。这也导致可能发生段故障的区域相对较小。使用unsafe代码,您可以更轻松地在与unsafe调用无关的位置上创建随机崩溃(通过在您认为要触摸的区域之外操作内存区域)。

这很像编译器警告-一些开发人员不注意它们,有些将“将警告作为错误处理”改为“全部”。猜猜是什么导致代码更易于维护?

另外,如果可以避免DllImport本身(如果可能会导致损坏/丢失的错误/可移植性问题等),则不是并不是一个好主意。

关于c# - 是否有必要避免在Mono中使用 "unsafe"?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6100765/

10-10 22:40