C#中方法:如果字符串为空,则用其他字符串替换?像oracle中的nvl(a,b)。

2024-11-25 00:27:22
推荐回答(3个)
回答1:

我是不知道有这样的方法,但是用哪个三目的运算符还是不错的,呵呵~~
string temp = a=="" ? b : a ; //这句话的意思是如果a==""为true,那么就给a赋b的值,否则就赋a的值。首先前提是 a,b都是string类型的,否则要强转。

如果你想写问题中的 int a=int.prise(b) 解决判断b是否为空吗?(int.prise 这个好像不是c#吧)
可以写成 int a=int.prise(b==""?0: Convert.ToInt32(b));
大概是这个意思,这里b是string类型的(如果是int型的,为空的话,默认值就是0)
Convert.ToInt32(b)这个方法,是c#中强转成int型的方法,前提b中的值,全是数字,否则也会报错

回答2:

1、这样现成的函数应该没有。
2、在.Net中可用一个简单的方法实现:
public string Nvl(string a, string b)
{
try
{
if (a == "") { return b; }
}
catch (Exception ex)
{ throw new Exception(ex.Message); }
}

回答3:

你问字符串,怎么举的java例子是int类型的,如果你问的是int类型的是否为null,也就是是否有值,可以用??
C# 2.0开始有System.Nullable可空类型

int? b=null;
int a= b ?? 0; //a值为0

??操作符就是验证是否为null