C# 中是否有任何函数,例如 SQL 中的 isnull

本文关键字:例如 SQL 中的 isnull 函数 是否 任何 | 更新日期: 2023-09-27 18:36:18

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

select isnull(Field1,0) from Table1

返回"0"。

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

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

C# 中是否有任何函数,例如 SQL 中的 isnull

您可以创建扩展方法:

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 合并运算符:

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

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

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

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

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

试试

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

使用IsNullOrEmpty

if (String.IsNullOrEmpty(textBox1.Text)) 

您可以创建自己的函数:

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