除了代码本身可以直接访问内存的事实.使用"/ unsafe"编译器标志和"fixed"关键字的其他含义是什么?是否存在与我的.exe的代码签名和部署相关的影响(我的应用程序仅限桌面)?
(这不是关于我是否应该这样做,为什么我的问题在这里讨论)
您可以将这些含义放入两个桶中.
首先是它如何影响您的应用程序环境.使用不安全的代码要求您的程序集在完全信任环境中运行.无法在受限制的环境中运行,例如某些Click Once安全设置.原因是不安全的代码阻止了CLR确保类型安全.单击一次虽然没有安全限制应该没有问题.
第二个是它对你编码方式的意义.使用不安全的代码通常涉及使用指针,特别是使用它们通过PInvoke执行高级编组.但是,这些行动中没有任何内在错误.它只需要比"安全"代码更多地理解CLR和编组.在您开始使用这些功能之前,对象固定是您需要掌握的知识的一个很好的例子.
不安全的代码是不可验证的,所以你必须要注意这一点.在完全信任环境中,这不是什么大问题,但如果您有其他环境具有更多限制权限集,那么这可能会对您产生影响.