设置一个SqlParameter并检查它是否为空,??与?

时间:2018-11-26 21:45:34

标签: c# sql-server object operators

最近我了解到,您可以在设置SqlParameter的值时检查该值是否为空,以及是否将其设置为空。这是使用空值运算符??进行的,这很简单:

cmd.Parameters.Add(new SqlParameter("ID", ID.Text ?? (object)DBNull.Value);

现在有人可以详细解释下一个示例吗?显然,它正在检查字符串以查看其是否为空,但是?运算符之后的所有东西如何工作?另外,???在性能方面有什么区别?

cmd.Parameters.Add(new SqlParameter("ID", ID.Text == "" ? (object)DBNull.Value : ID.Text));

1 个答案:

答案 0 :(得分:0)

它们是两个不同的函数,一个函数用于null合并,另一个函数用作三元函数的条件运算符。 Microsoft开发人员网络将这两个解释为follows

  

Null-coalescing运算符该运算符的优先级高于   下一节的优先级低于上一节。

     

x ?? y –如果非空,则返回x;否则,返回x。否则,返回y。


  

条件运算符此运算符的优先级高于下一个   部分,并且优先级低于上一部分。

     

t? x:y –如果测试t评估为true,则评估并返回x;   否则,求值并返回y。