避免使用“;“不安全”;单声道

本文关键字:不安全 声道 单声道 | 更新日期: 2023-09-27 17:57:32

我最近遇到这样一个事实,即在C#/Mono中使用某些概念时,需要指定"不安全"选项。我不仅必须在代码中指定选项,还必须在编译代码时指定选项,这会让人产生"使用此代码本质上是不安全和有风险的"的感觉。奇怪的是,DllImport不需要unsafe标志,所以我可以在我的"安全代码"中创建我想要的所有segfault。有什么理由避免我忽略的不安全代码吗?

避免使用“;“不安全”;单声道

DllImport对于大多数C#开发人员来说是一个众所周知的概念。它还导致了一个相对较小的区域,在那里可以发生segfault。使用unsafe代码,您可以更容易地在与unsafe调用无关的地方创建随机崩溃(通过操纵您认为正在触摸的内存区域之外的内存区域)。

这很像编译器警告——有些开发人员根本不注意它们,有些则将"将警告视为错误"改为"全部"。猜猜是什么导致代码更容易维护?

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