CA1416警告:平台兼容性问题

来源:https://docs.microsoft.com/zh-cn/dotnet/core/compatibility/code-analysis/5.0/ca1416-platform-compatibility-analyzer

.NET code analyzer rule CA1416 is enabled, by default, starting in .NET 5.0. It produces a build warning for calls to platform-specific APIs from call sites that don’t verify the operating system.

在.NET5上,开始默认启动CA1416警告。

你可以在IF语句中,使用 任意一个Is 方法来判断:

public void PlayCMajor()
{if (OperatingSystem.IsWindows()){Console.Beep(261, 1000);}
}

或者你不喜欢在运行的时候使用一个IF语句来判断,你可以调用Debug.Assert(Boolean) 来代替:

public void PlayCMajor()
{Debug.Assert(OperatingSystem.IsWindows());Console.Beep(261, 1000);
}

如果你是一个库的作者,你可以给你的API添加特殊平台标记。在这种情况下,确认平台的任务就交给了调用者。你可以将其标记在一个方法或者一个整个程序集上。

[SupportedOSPlatform("windows")]
public void PlayCMajor()
{Console.Beep(261, 1000);
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部