gpt4 book ai didi

c# - ?运营商VS??运营商使用

转载 作者:行者123 更新时间:2023-11-30 19:48:51 25 4
gpt4 key购买 nike

下面的语句有效:

Class.ID = odrDataReader["ID"] == null ? 0 : Convert.ToInt32(odrDataReader["ID"]);

但以下不是:

Class.ID = odrDataReader["ID"] as int? ?? 0; //ID is always 0

谁能解释一下为什么??即使 ID 列不为空,运算符也始终返回 0?

解决方案(柯克建议):

Class.ID = Convert.ToInt32(odrDataReader["ID"] ?? 0);

最佳答案

在第一个中使用 Convert.ToInt32(odrDataReader["ID"]) 在第二个中使用 odrDataReader["ID"] as int?。从你说的第一个是正确的,所以你也应该在第二个中使用 Convert。

其实我觉得 first 很好,因为如果你真的想用 ?? 会看起来很奇怪运营商。

编辑:稍微解释一下 odrDataReader["ID"] as int? 不是转换。如果 odrDataReader["ID"] 是字符串,它将始终返回 null。

关于c# - ?运营商VS??运营商使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4895163/

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