c# unsafe

前言

c# unsafe可以让我们做一些测试的危险操作。

正文

打开unsafe 功能

在 Visual Studio 开发环境中设置此编译器选项
打开项目的“属性”页。
单击“生成”属性页。
选中“允许不安全代码”复选框。
向 csproj 文件添加此选项
打开项目的 csproj 文件,并添加以下元素:
XML 复制
  <PropertyGroup>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
  </PropertyGroup>

测试

var obj = new PointerDemo();
Console.WriteLine("原始值: {0}, {1}", obj.x, obj.y); 
fixed (int* n = &obj.x)
{
  fixed (int* p = &obj.y)
  {
        ChangeValue(n, p); //取data地址并传递
  }
}
Console.WriteLine("改变地址后: {0}, {1}", obj.x, obj.y); 
Console.ReadLine(); 

注意

无法获取托管类型的地址。

posted @ 2020-06-23 16:48  敖毛毛  阅读(441)  评论(0编辑  收藏  举报