C# 中是否有类似 SQL 中的 isnull 的函数?

Is there any function in C# like isnull in SQL?

在 SQL 服务器中我们可以使用 "isnull" 函数,例如如果 Table1 包含 Field1 并且只有一个 Field1 为空的记录,我们可以编写此查询:

select isnull(Field1,0) from Table1

哪个returns“0”。

我们可以在 C# 中使用这样的函数吗?例如考虑 textBox1 为空。我想显示“0”。

MessageBox.show( FunctionName(textBox1.text , 0).toString());

您可以创建自己的函数:

int myfun(String text) {
    if (string.IsNullOrEmpty(text)) {
        return 0;
    }
    return 1;
}

使用IsNullOrEmpty,

if (String.IsNullOrEmpty(textBox1.Text)) 

您可以通过这种方式轻松完成,这与使用函数一样好:

MessageBox.show(String.IsNullOrEmpty(textBox1.Text) ? "" : textBox1.text);

尝试

MessageBox.show(String.IsNullOrEmpty(textBox1.Text) ? "0" : textBox1.text);

您可以创建一个扩展方法:

internal static class MyStringExtensions {

   public static string GetValueOrDefault(this string extendee, string defaultValue) {

     if(string.IsNullOrEmpty(extendee)) { return defaultValue;}
     return extendee;
   }
}

示例使用:

MessageBox.show( textBox1.text.GetValueOrDefault("0"));

您可以像这样使用 null-coalescing operator

MessageBox.show( textBox1.text ?? "0" );

请注意,?? 右侧的值需要与左侧的值类型相同,或者是隐式转换为左侧类型的类型。在示例中,两个值都是 string 类型,因此一切正常。

另请注意,如果值为空而不是 null,将返回空字符串。