gpt4 book ai didi

c# - 将int转换为int?可能的更新?

转载 作者:行者123 更新时间:2023-12-04 12:23:17 25 4
gpt4 key购买 nike

我在本地构建了我的项目,它使用类似于以下的代码:

bool success = true;
int y = 0;
int? x = success ? y : null;
但是我们的构建机器失败并出现以下错误:

error CS0173: Type of conditional expression cannot be determinedbecause there is no implicit conversion between 'int' and '<null>'


所以,我不得不将代码更新为:
bool success = true;
int y = 0;
int? x = success ? (int?)y : null;
这使得构建机器正确构建项目。我假设这是由于我在本地进行了构建机器没有的某种更新而发生的。也许是 C# 更新,但我找不到任何东西。有谁知道最近是否有任何与此相关的更新,您是否有指向文档的链接?
系统信息:
  • 适用于 Mac 的 Visual Studio 社区 2019
  • 版本 8.8.3(内部版本 16)
  • GTK+ 2.24.23(罗利主题)
  • Xamarin.Mac 6.18.0.23 (d16-6/088c73638)
  • 套餐版本:612000107


  • 最佳答案

    如评论中所述,您需要 C# 9.0(或更高版本)才能使用此类“目标类型”条件。
    例如,使用 VS 2019 和 .NET Core 3.1 的目标框架,将为您的原始代码生成以下内容:

    error CS8400: Feature 'target-typed conditional expression' is notavailable in C# 8.0. Please use language version 9.0 or greater.


    将目标框架更改为 .NET 5.0(隐式使用 C# 9.0 标准)解决了该问题。 (您可能需要更新 Visual Studio 安装才能访问 .NET 5 框架构建工具。)

    关于c# - 将int转换为int?可能的更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65132406/

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