Mam następujące dwa podejścia dla tej samej funkcjonalności - jedna z warunkiem "if", a druga z "?? i odlewania”Które podejście jest lepsze DlaczegoCzy stan "Jeśli" jest lepszy niż? i odlewanie
Kod:.?
Int16? reportID2 = null;
//Other code
//Approach 1
if (reportID2 == null)
{
command.Parameters.AddWithValue("@report_type_code", DBNull.Value);
}
else
{
command.Parameters.AddWithValue("@report_type_code", reportID2);
}
//Approach 2
command.Parameters.AddWithValue("@report_type_code", ((object) reportID2) ?? DBNull.Value);
UPDATE
Na podstawie odpowiedzi, są następujące korzyści ??
- Zwiększona czytelność
- Zmniejszona ilość rozgałęzień w przepływie programu (zredukowany cykl złożoność omatyczna)
Uwaga: Koszt odlewania jako obiekt jest nieistotny.
mającej
Zostawiłabym znaczniki 'null-col-op',' performance' oraz 'casting'. – abatishchev