.NET中是不允许不安全的代码的,比如指针等。但有些特殊场合还是需要用到指针,这时候就需要在你的代码块上加上unsafe标签。如:
1: unsafe static void Main(string[] args)
2: {
3: int a = 5;
4: int* p = &a;
5: ChangeValue(p);
6: Console.WriteLine(a.ToString());
7: Console.ReadLine();
8: }
9:
10: unsafe static void ChangeValue(int* pInt)
11: {
12: *pInt = 23;
13: }
有时候加上了unsafe标签,编译器会报一个错误:
这是因为除了要加上unsafe关键字,还需要在项目属性里面设置一下,允许不安全代码,如下图:
设置好了后,即可顺利编译通过。
参考:
http://www.cnblogs.com/webcyz/archive/2011/01/06/1928905.html