我最近发现,在使用C#/Mono中的某些概念时,我需要指定“不安全”选项。我不仅必须在我的代码中指定选项,我还必须在编译它时指定它,这会引起“此代码本质上是不安全的,使用起来有风险”的感觉。这里奇怪的是,DllImport不需要不安全的标志,所以我可以在我的“安全代码”中创建我想要的所有段错误。有什么理由要避免我忽略的不安全代码吗?
发布于 2011-05-24 01:45:38
对于大多数C#开发人员来说,DllImport是一个众所周知的概念。它还会导致可能发生分段故障的相对较小的区域。使用unsafe代码,您可以更轻松地在与unsafe调用无关的地方创建随机崩溃(通过操作您认为正在接触的内存区域)。
这很像编译器的警告--一些开发人员没有注意到它们,一些人将“将警告视为错误”变成了“全部”。猜猜代码更容易维护的结果是什么?
此外,如果可以避免DllImport (因为潜在的破坏/遗漏错误/可移植性问题等),那么本身也不是一个好主意。
https://stackoverflow.com/questions/6100765
复制相似问题