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)