.NET中调用不安全代码

       .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标签,编译器会报一个错误:

image

        这是因为除了要加上unsafe关键字,还需要在项目属性里面设置一下,允许不安全代码,如下图:

image

         设置好了后,即可顺利编译通过。

参考:

http://www.cnblogs.com/webcyz/archive/2011/01/06/1928905.html

原文地址:https://www.cnblogs.com/xiaoxiangfeizi/p/3456803.html