在方法前或代码块前使用关键字unsafe
有什么区别吗?
如果我有少量的不安全代码和数百行安全代码,那么在方法之前使用它是否会出错?
这是一个主观的答案,但我会在方法级别上使用unsafe
,像这样:
private unsafe int MyFunc ( ... )
{
...
}
unsafe
时,它会被隐藏起来,很难找到,而像这样的东西应该非常明显。每个人都会阅读函数声明,但并不是每个人都会进入函数体,除非他们需要。在声明中使用unsafe
可以使其更加突出。unsafe
只是让你能够声明和使用指向各种.NET类型的指针。混合使用安全和不安全代码是可以的,只要你小心不要破坏内存并清理你使用的非托管资源即可。 - xxbbccunsafe
语句来包装一些不安全的代码行,因为这样更清晰易懂,更容易找到。不安全的代码允许您直接访问内存,因此它可能有利也可能有弊。我已经通过这篇文章http://www.codeproject.com/Articles/2363/Unsafe-programming-in-C阅读了一些关于您问题的内容,希望能为您指明正确的方向。祝你好运!