C# 相当于 SQL Server 中的 IsNull() 函数
在 SQL Server 中,您可以使用 IsNull()
函数检查某个值是否为 null,如果是,则返回另一个值。 现在我想知道C#中是否有类似的东西。
例如,我想做这样的事情:
myNewValue = IsNull(myValue, new MyValue());
而不是:
if (myValue == null)
myValue = new MyValue();
myNewValue = myValue;
谢谢。
In SQL Server you can use the IsNull()
function to check if a value is null, and if it is, return another value. Now I am wondering if there is anything similar in C#.
For example, I want to do something like:
myNewValue = IsNull(myValue, new MyValue());
instead of:
if (myValue == null)
myValue = new MyValue();
myNewValue = myValue;
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
它称为空合并 (
??
) 运算符:It's called the null coalescing (
??
) operator:使用等于方法:
Use the Equals method:
为了使用 DB Nulls,我为 VB 应用程序创建了一堆。 我将它们称为 Cxxx2,因为它们类似于 VB 的内置 Cxxx 函数。
您可以在我的 CLR 扩展项目
http:// /www.codeplex.com/ClrExtensions/SourceControl/FileView.aspx?itemId=363867&changeSetId=17967
For working with DB Nulls, I created a bunch for my VB applications. I call them Cxxx2 as they are similar to VB's built-in Cxxx functions.
You can see them in my CLR Extensions project
http://www.codeplex.com/ClrExtensions/SourceControl/FileView.aspx?itemId=363867&changeSetId=17967
遗憾的是,没有与 DBNull 一起使用的空合并运算符等效的操作。 为此,您需要使用三元运算符:
Sadly, there's no equivalent to the null coalescing operator that works with DBNull; for that, you need to use the ternary operator:
我一直在我的 DataRow 类型上使用以下扩展方法:
用法:
我首先检查该列是否存在,因为如果没有查询结果具有该列的非空值,则 DataTable 对象甚至不会提供该列。
I've been using the following extension method on my DataRow types:
usage:
I'm checking for the existence of the column first because if none of query results has a non-null value for that column, the DataTable object won't even provide that column.
使用以下方法。
Use below methods.
你写了两个函数,
它们运行得很好
You Write Two Function
They Work Very Well
这半是开玩笑,因为这个问题有点愚蠢。
这是一个扩展方法,但它扩展了 System.Object,因此您现在使用的每个对象都有一个 IsNull() 方法。
然后你可以通过以下方式节省大量代码:
而不是超级蹩脚:
This is meant half as a joke, since the question is kinda silly.
This is an extension method, however it extends System.Object, so every object you use now has an IsNull() method.
Then you can save tons of code by doing:
instead of the super lame: