为什么我得到错误“不安全的代码可能只有在用/不安全的编译时才会出现”?

为什么我会得到以下错误?

只有在使用/不安全编译时才可能出现不安全代码”?

我使用 C # 和 VisualStudio2008在 WindowsCE 上编程。

155051 次浏览

可能是因为你使用了不安全的代码。

您是否正在使用指针或非托管程序集执行某些操作?

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

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

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

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

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

下面是一个截图:

Unsafe screenshot

ََََََََ

对于每个使用 Rider 的人,你必须选择你的项目 > 右键单击 > 属性 > 配置,然后选择调试和发布,并为 都有选择“允许不安全代码”。Screenshot

也可以在. csproj 文件中直接向 PropertyGroup添加 AllowUnsafeBlocks标记

<PropertyGroup>
<TargetFrameworks>netcoreapp3.1; net472</TargetFrameworks>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>