我有一个面向 .NET Framework 4.7.2 的 Windows 窗体应用程序。由于 .NET Core 3.0 支持 Windows Forms,我想尝试一下。有什么方法可以将 VS2019 项目从 .NET Framework 转换为 .NET Core,或者唯一可能的方法是创建一个新的 .NET Core 项目并从旧项目中添加文件?
我只询问 VS 项目迁移,而不是任何潜在的不兼容问题。
我有一个比较两个可空的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)
结果或多或少是我的预期,但我想知道为什么使用逻辑'和'运算符(&)的非短路版本而不是短路版本(&&).在我看来,后者会更有效率 - 如果已经知道比较的一方是错误的,那么就没有必要评估另一方.这里的&运算符是必需的还是这只是一个不够重要的实现细节?