最近我了解到,您可以在设置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));
答案 0 :(得分:0)
它们是两个不同的函数,一个函数用于null合并,另一个函数用作三元函数的条件运算符。 Microsoft开发人员网络将这两个解释为follows。
Null-coalescing运算符该运算符的优先级高于 下一节的优先级低于上一节。
x ?? y –如果非空,则返回x;否则,返回x。否则,返回y。
条件运算符此运算符的优先级高于下一个 部分,并且优先级低于上一部分。
t? x:y –如果测试t评估为true,则评估并返回x; 否则,求值并返回y。