我正在尝试在 int 上使用空合并运算符。当我在字符串上使用它时它有效

UserProfile.Name = dr["Name"].ToString()??"";

当我尝试在这样的 int 上使用它时
UserProfile.BoardID = Convert.ToInt32(dr["BoardID"])??default(int);

我收到此错误消息



我找到了这篇博客文章,其中将 http://davidhayden.com/blog/dave/archive/2006/07/05/NullCoalescingOperator.aspx 与 int 数据类型一起使用。谁能告诉我我做错了什么?

最佳答案

如果 dr["BoardID"] 从数据库中为 NULL,我怀疑您真正想做的是将 BoardID 设置为 0。因为如果 dr["BoardID"] 为 null,Convert.ToInt32 将失败。试试这个:

UserProfile.BoardID = (dr["BoardID"] is DbNull) ? 0 : Convert.ToInt32(dr["BoardID"]);

关于c# - 使用带有 int 的 c# Null-Coalescing 运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6627451/

10-08 23:15