相关疑难解决方法(0)

"如果"条件好于?? 和铸造

我有两种相同功能的方法 - 一种是"if"条件,另一种是"??" 和铸造".哪种方法更好?为什么?

码:

  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);
Run Code Online (Sandbox Code Playgroud)

UPDATE

根据答案,以下是的好处 ??

  1. 提高可读性
  2. 降低程序流程的分支开度(降低了圈复杂度)

注意:作为对象的铸造成本可以忽略不计.

参考

  1. Null-Coallescing运算符 - 为什么选择铸造?

c# performance casting null-coalescing-operator

10
推荐指数
2
解决办法
454
查看次数