C#相当于SQL Server中的IsNull()函数

在SQL Server中,您可以使用IsNull()函数检查一个值是否为空,如果是,则返回另一个值。 现在我想知道在C#中是否有类似的东西。

例如,我想要做类似的事情:

 myNewValue = IsNull(myValue, new MyValue()); 

代替:

 if (myValue == null) myValue = new MyValue(); myNewValue = myValue; 

谢谢。

它被称为空合并( ?? )运算符:

 myNewValue = myValue ?? new MyValue(); 

可悲的是,没有等同于与DBNull一起工作的空合并运算符; 为此,您需要使用三元运算符:

 newValue = (oldValue is DBNull) ? null : oldValue; 

使用Equals方法:

 object value2 = null; Console.WriteLine(object.Equals(value2,null)); 
 public static T isNull<T>(this T v1, T defaultValue) { return v1 == null ? defaultValue : v1; } myValue.isNull(new MyValue()) 

为了处理数据库空,我为VB应用程序创build了一堆。 我称它们为Cxxx2,因为它们与VB的内置Cxxx函数类似。

你可以在我的CLR扩展项目中看到它们

http://www.codeplex.com/ClrExtensions/SourceControl/FileView.aspx?itemId=363867&changeSetId=17967

这只是一个笑话,因为这个问题有点傻。

 public static bool IsNull (this System.Object o) { return (o == null); } 

这是一个扩展方法,但它扩展了System.Object,所以你现在使用的每个对象都有一个IsNull()方法。

然后,您可以通过执行以下操作节省大量代码

 if (foo.IsNull()) 

而不是超级跛脚:

 if (foo == null)