小编jac*_*kbe的帖子

如何在 Visual Studio 2019 中将 .NET Framework 4.7.2 项目迁移到 .NET Core 3.0

我有一个面向 .NET Framework 4.7.2 的 Windows 窗体应用程序。由于 .NET Core 3.0 支持 Windows Forms,我想尝试一下。有什么方法可以将 VS2019 项目从 .NET Framework 转换为 .NET Core,或者唯一可能的方法是创建一个新的 .NET Core 项目并从旧项目中添加文件?

我只询问 VS 项目迁移,而不是任何潜在的不兼容问题。

.net visual-studio .net-core visual-studio-2019

8
推荐指数
1
解决办法
2万
查看次数

为什么在比较两个nullables是否相等时,不使用短路逻辑'和'运算符?

我有一个比较两个可空的int并将比较结果打印到控制台的方法:

static void TestMethod(int? i1, int? i2)
{
    Console.WriteLine(i1 == i2);
}
Run Code Online (Sandbox Code Playgroud)

这是它反编译的结果:

private static void TestMethod(int? i1, int? i2)
{
    int? nullable = i1;
    int? nullable2 = i2;
    Console.WriteLine((nullable.GetValueOrDefault() == nullable2.GetValueOrDefault()) & (nullable.HasValue == nullable2.HasValue));
}
Run Code Online (Sandbox Code Playgroud)

结果或多或少是我的预期,但我想知道为什么使用逻辑'和'运算符(&)的非短路版本而不是短路版本(&&).在我看来,后者会更有效率 - 如果已经知道比较的一方是错误的,那么就没有必要评估另一方.这里的&运算符是必需的还是这只是一个不够重要的实现细节?

c# nullable

6
推荐指数
1
解决办法
304
查看次数