2015-08-18 3 views
-1

Можем ли мы написать это в одной строке?int.parse вместо if else условие для добавления

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

В принципе, добавьте значение, если оно не равно нулю. Если он равен нулю, добавьте 1. Мне просто интересно, можем ли мы сделать это в одной строке.

Спасибо.

+2

Да, вы можете положить все это на одну линию. Просто удалите разрывы строк – musefan

ответ

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); 
+0

имеет смысл, но мне было просто любопытно, можем ли мы это сделать. Благодарю. – JohnnyCage

2

в этом случае можно было бы написать так:

cmd.Parameters.AddWithValue("@Age", 1 + Convert.ToInt32(dr["Age"] ?? "0")) 

Больше индо на ?? оператор here

Смежные вопросы