sách gpt4 ai đã đi

Sự khác biệt giữa gỡ lỗi và phát hành trong C#

In lại 作者:行者123 更新时间:2023-12-02 10:48:02 27 4
mua khóa gpt4 Nike

以下代码在95%的机器上产生相同的输出,但是在几台机器上却有所不同。在 Debug模式下,输出:

Changing from New to Fin
ĐƯỢC RỒI

但在 Release模式下:
Changing from New to Fin ĐƯỢC RỒI行缺失。该项目针对使用VS 2015构建的.Net 4.0。您可以下载完整的示例 đây.

源代码
using System;
namespace Test
{
class Program
{
void tĩnh Main(string[] args)
{
Status current = Values.Status;
if (current != Next())
Console.WriteLine("OK");
}

static VO Values = new VO();
private static Status Next()
{
Status res = Status.Fin;
if (Values.Status == Status.New && Values.Cond)
res = Status.Fin;
else if (Values.Status == Status.Fin)
res = Status.Fin;

Log("Changing from {0} to {1}", Values.Status, res);
Values.Status = res;
return res;
}
public static void Log(string format, params object[] args)
{
Console.WriteLine(format, args);
}
}

public class VO
{
public Status Status;
public bool Cond;
}

public enum Status { New, Fin }
}

我认为这是重现该错误的最小版本。删除Next()中的某些条件后,内联Log方法,将Values.Cond替换为false会导致应用程序正常运行。

biên tập:与硬件无关-操作系统已提取到Hyper-V,问题仍然存在。

1 Câu trả lời

theoHans Passant's注释,使用clrjit.dll 4.6版仍然可以再现该问题。升级到4.7后,它消失了。

关于c# - 调试和发布之间的C#区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42787282/

27 4 0
Bài viết được đề xuất: python - 初学者尝试调试简单的程序
Bài viết được đề xuất: php - 编译PHP 7时未找到Apache a2enmod,但这是必需的
Bài viết được đề xuất: .net - Visual Studio 2002中的编译器选项?
Bài viết được đề xuất: vba - 匹配查询中找到的数据
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com