空合并或三元运算符偏好?
Null-coalesing or ternary operator prefernce?
cmd.Parameters.Add("p_Shift_Id", OracleDbType.Varchar2).Value = p_Shift_Id;
p_Shift_Id 可能为空。如果它为 null,那么我想使用 DBNull.Value。如果它不为空,则为它包含的值。
最好的方法是什么?我宁愿不使用
if(p_Shift_Id == null)
{
cmd.Parameters.Add("p_Shift_Id", OracleDbType.Varchar2).Value = DBNull.Value;
} else {
cmd.Parameters.Add("p_Shift_Id", OracleDbType.Varchar2).Value = p_Shift_Id;
}
将 p_Shift_Id
转换为 object
,然后使用 Null-Coalescing
运算符,如下所示:
cmd.Parameters.Add("p_Shift_Id", OracleDbType.Varchar2).Value = (object)p_Shift_Id ?? DBNull.Value;
cmd.Parameters.Add("p_Shift_Id", OracleDbType.Varchar2).Value = p_Shift_Id;
p_Shift_Id 可能为空。如果它为 null,那么我想使用 DBNull.Value。如果它不为空,则为它包含的值。
最好的方法是什么?我宁愿不使用
if(p_Shift_Id == null)
{
cmd.Parameters.Add("p_Shift_Id", OracleDbType.Varchar2).Value = DBNull.Value;
} else {
cmd.Parameters.Add("p_Shift_Id", OracleDbType.Varchar2).Value = p_Shift_Id;
}
将 p_Shift_Id
转换为 object
,然后使用 Null-Coalescing
运算符,如下所示:
cmd.Parameters.Add("p_Shift_Id", OracleDbType.Varchar2).Value = (object)p_Shift_Id ?? DBNull.Value;