gpt4 book ai didi

c# - 如何将 C# 可为空的 int 转换为 int

转载 作者:IT王子 更新时间:2023-10-29 03:27:35 25 4
gpt4 key购买 nike

如何将可为空的 int 转换为 int?假设我有 2 种类型的 int,如下所示:

int? v1;  
int v2;

我想将v1 的值分配给v2v2 = v1; 会导致错误。如何将 v1 转换为 v2

最佳答案

到目前为止其他答案都是正确的;我只想再添加一个稍微干净一点的:

v2 = v1 ?? default(int);

任何Nullable<T>可以隐式转换为其 T , 前提是被评估的整个表达式永远不会导致对 ValueType 的空赋值。因此,空合并运算符 ??只是三元运算符的语法糖:

v2 = v1 == null ? default(int) : v1.Value;

...这又是 if/else 的语法糖:

if(v1==null)
v2 = default(int);
else
v2 = v1.Value;

此外,从 .NET 4.0 开始,Nullable<T>有一个“GetValueOrDefault()”方法,它是一个 null 安全的 getter,基本上执行上面显示的 null 合并,所以这也有效:

v2 = v1.GetValueOrDefault();

关于c# - 如何将 C# 可为空的 int 转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5995317/

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