在SQL服务器中,我们可以使用“isnull”函数,例如,如果Table1包含Field1,并且只有一条Field1为null的记录,我们可以编写此查询:
select isnull(Field1,0) from Table1
返回“0”。
我们可以在C#中使用这样的任何函数吗?例如,考虑textBox1为空。我想显示“0”。
MessageBox.show( FunctionName(textBox1.text , 0).toString());
答案 0 :(得分:5)
您可以创建扩展方法:
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"));
答案 1 :(得分:1)
您可以通过这种方式轻松完成,这与使用函数一样好:
MessageBox.show(String.IsNullOrEmpty(textBox1.Text) ? "" : textBox1.text);
答案 2 :(得分:1)
尝试
MessageBox.show(String.IsNullOrEmpty(textBox1.Text) ? "0" : textBox1.text);
答案 3 :(得分:0)
您可以创建自己的功能:
int myfun(String text) {
if (string.IsNullOrEmpty(text)) {
return 0;
}
return 1;
}
答案 4 :(得分:0)
if (String.IsNullOrEmpty(textBox1.Text))
答案 5 :(得分:0)
您可以像这样使用null-coalescing operator:
MessageBox.show( textBox1.text ?? "0" );
请注意,在??
的右侧,值必须与左侧的类型相同,或者是隐式转换为右侧类型的类型。在示例中,两个值都是string
类型,所以一切都很好。
另请注意,如果值为空而不是null
,则返回空字符串。