为什么会出现以下错误?
只有使用“/unsafe”编译时才可能出现不安全代码?
我使用 C# 和 Visual Studio 2008 在 Windows CE 上进行编程。
要使用不安全的代码块,必须在打开 /unsafe 开关的情况下编译项目。
打开项目的属性,转到
Build
选项卡并选中 Allow unsafe code
复选框。
这是截图:
ََََََََ
可能是因为您使用了不安全的代码。
您是否在某处使用指针或非托管程序集执行某些操作?
在代码中搜索
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
也可以直接在.csproj文件中将
AllowUnsafeBlocks
标签添加到PropertyGroup
<PropertyGroup>
<TargetFrameworks>netcoreapp3.1; net472</TargetFrameworks>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
我将此行添加到项目文件中
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
它对我有用。