我们可以写一行吗?
if (dr["Age"] == null)
{
cmd.Parameters.AddWithValue("@Age", 1);
}
else
{
cmd.Parameters.AddWithValue("@Age", Convert.ToInt32(dr["Age"]) + 1);
}
如果值不为null,则基本上添加到值。如果它为null则添加1.我只是好奇我们是否可以在一行中完成。
感谢。
答案 0 :(得分:2)
在这种情况下,您也可以这样写:
cmd.Parameters.AddWithValue("@Age", 1 + Convert.ToInt32(dr["Age"] ?? "0"))
更多的印度? operator here
答案 1 :(得分:0)
是的,您可以使用ternary operator,但我不会亲自去做,因为它读得不好......
cmd.Parameters.AddWithValue("@Age", dr["Age"] == null ? 1 : Convert.ToInt32(dr["Age"]) + 1);
我建议至少将其分解为几行,以便更容易理解,例如:
int age = dr["Age"] == null ? 1 : Convert.ToInt32(dr["Age"]) + 1;
cmd.Parameters.AddWithValue("@Age", age);