gpt4 book ai didi

c# - C# 中具有未定义行为的代码

转载 作者:太空狗 更新时间:2023-10-29 22:00:54 26 4
gpt4 key购买 nike

在 C++ 中,有很多方法可以编写编译代码,但会产生 undefined behavior (Wikipedia) . C#中有类似的东西吗?我们可以用 C# 编写可编译但具有未定义行为的代码吗?

最佳答案

正如其他人所提到的,“不安全” block 中的几乎所有内容都可以产生实现定义的行为;滥用不安全 block 允许您更改构成运行时本身的代码字节,因此所有赌注都被取消了。

除法 int.MinValue/-1 具有实现定义的行为。

抛出异常但从不捕获它会导致实现定义的行为——终止进程、启动调试器等。

在 C# 中还有许多其他情况,我们被迫发出具有实现确定行为的代码。比如这种情况:

https://learn.microsoft.com/en-us/archive/blogs/ericlippert/odious-ambiguous-overloads-part-two

但是,安全、行为良好的 C# 程序具有实现定义的行为的情况应该很少见。

关于c# - C# 中具有未定义行为的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24860615/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com