1. 用unsafe关键字编写不安全的代码
因为使用指针会带来相关的风险,所以C#只允许在特别标记的代码块中使用指针。标记代码所用的关键字时unsafe。
// 标记方法
unsafe int GetSomeNumber()
{
}
任何方法都可以标记为unsafe,无论该方法是否应用了其他修饰符。在这种方法中,unsafe修饰符还会应用到方法的参数上,允许把指针用作参数。还可以把整个类或结构标记为unsafe,这表示假设所有程序都是不安全的。
unsafe class MyClass
{
}
同样,可以把成员标记为unsafe:
class MyClass
{
unsafe int* pX;
}
也可以把方法中的一块代码标记为unsafe
void MyMethod()
{
unsafe
{
}
}
注意:不能仅把局部变量本身标记为unsafe。
如果要使用不安全的局部变量,就需要在不安全的方法或语句块中声明和使用它。