zoukankan      html  css  js  c++  java
  • C# unsafe code may only appear if compiling with/unsafe

    在C#中,在程序中使用指针(如下面程序所示),编译时会出现“Unsafe code may only appear if compiling with /unsafe”的错误提示。本文谈一下出错原因和解决办法。

    public static void Main(string[] args)  
    {  
        int i = 99, y = 200;  
        unsafe  
        {  
            swap(&i, &y);  
        }  
        Console.WriteLine("x is now {0},y is now {1}",i,y);  
    }  
      
    public static unsafe void swap(int *a, int *b)  
    {  
        int temp;  
        temp = *a;  
        *a = *b;  
        *b = temp;  
    }

    1. 原因:

    在写任意一个C#程序的时候,一般都是在创建托管代码。托管代码是在Common Language Runtime (CLR)控制下执行,CLR使得程序员不需要管理内存和关心内存的分配和回收,有自动回收内存的机制。CLR也允许你写非安全代码 (unsafe code)。

    非安全代码就是不在 CLR 完全控制下执行的代码,它有可能会导致一些问题,因此他们必须用 “unsafe” 进行表明,所以一般如果在C#中到用unsafe code非安全代码的话,VS.NET中编译就会出现“Unsafe code may only appear if compiling with /unsafe”的提示了,

    2. 解决方法:

    点项目属性(Properties)->生成(Build)->常规(General)中:钩上允许不安全代码(Allow unsafe code)

  • 相关阅读:
    数据特征分析:5.相关性分析
    数据特征分析:4.正态分布与正态性检验
    go-文件操作
    图-迪杰斯特拉算法
    图-克鲁斯卡尔算法
    图-普利姆算法
    go-客户信息关系系统
    go-家庭收支记账软件例子
    采用邻接表表示图的深度优先搜索遍历
    广度优先搜索遍历连通图
  • 原文地址:https://www.cnblogs.com/ybb521/p/3368260.html
Copyright © 2011-2022 走看看