gpt4 book ai didi

c# - 在三元运算符 C# 中转换为 Nullable 创建新变量?

转载 作者:太空宇宙 更新时间:2023-11-03 18:45:09 25 4
gpt4 key购买 nike

假设我们有表达式:

int? someValue = SomeCondition ? 1 : (int?)null;

所以当 SomeCondition 为假时,

(int?)null

评估并将是 int 的新实例?此时创建以分配给 someValue?

最佳答案

当 SomeCondition 为假时,三元运算符表达式的值将为 null

null 之前的 (int?) 只是强制转换它(不创建新对象)。

强制转换是必需的,因为编译器强制表达式的两个可能返回值是同一类型(或可转换为通用类型)。所以在这种情况下,编译器看到 int(1 的类型)和 int?( 的转换类型) null) 可转换为 (int?)。如果没有强制转换,编译器将无法协调 nullint,因为值类型不能为 null,而 null 本身没有自然类型。

您还可以将 (int?) 强制转换为 1 以实现相同的效果。

关于c# - 在三元运算符 C# 中转换为 Nullable 创建新变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5074487/

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