int.parse而不是if else条件进行添加

时间:2015-08-18 16:17:35

标签: c#

我们可以写一行吗?

    if (dr["Age"] == null)
    {
       cmd.Parameters.AddWithValue("@Age", 1);
    }
    else
    {
       cmd.Parameters.AddWithValue("@Age", Convert.ToInt32(dr["Age"]) + 1);
    }

如果值不为null,则基本上添加到值。如果它为null则添加1.我只是好奇我们是否可以在一行中完成。

感谢。

2 个答案:

答案 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);