为什么会出现错误“不安全代码仅在使用/ unsafe进行编译时才会出现”?


Answers:


274

要使用不安全的代码块,必须在打开/ unsafe开关的情况下编译项目。

打开项目的属性,转到Build选项卡并选中Allow unsafe code复选框。


4
我必须说,尽管确实可以编译该版本,但仍不允许将其发布到网络上:/
Nick

5
@Nick:是的,如果您发布要动态编译的代码,则项目设置不适用。见stackoverflow.com/questions/16567197/...
Guffa

9
请注意,调试和发布编译之间的设置可能有所不同。这只花了我20分钟的时间。
LosManos 2015年

简单快速的解决方案。
Kalher

131

这是屏幕截图:

不安全的屏幕截图

ََََََََ


8
重要说明:另外请注意,此屏幕快照用于“配置:活动(调试)”。您可能还需要将其更改为“发布”,因为这很可能是您要发布的内容。
Doug S


4

在代码中搜索unsafe块或语句。这些仅在使用编译时有效/unsafe


3

要使用不安全代码块,请打开项目的属性,转到“ 构建”选项卡,然后选中“ 允许不安全代码”复选框,然后编译并运行。

class myclass
{
     public static void Main(string[] args)
     {
         unsafe
         {
             int iData = 10;
             int* pData = &iData;
             Console.WriteLine("Data is " + iData);
             Console.WriteLine("Address is " + (int)pData);
         }
     }
}

输出:

Data is 10
Address is 1831848

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.