有没有办法在更短更智能的方式中重写这些语句?请注意,检查var for null很重要,因为我想避免异常.
C#:
if(var ==n ull)
{
return 0;
}
if(var.ToString() == "A")
{
return 1;
}
else if(var.ToString() == "B")
{
return 2;
}
else
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Ren*_*ogt 20
您可以使用三元运算符和空条件运算符:
return var?.ToString() == "A" ? 1 : 0;
Run Code Online (Sandbox Code Playgroud)
如果是,则?.返回null条件运算符(),如果不是则返回.nullvarnullvar.ToString()varnull
由于null不等于"A",三元运算符返回:
0如果var是null或var.ToString()不是"A"和1如果var不是null,var.ToString()是"A".万一你不能使用C#6(它提供空条件运算符):
return var != null && var.ToString() == "A" ? 1 : 0;
Run Code Online (Sandbox Code Playgroud)
除了Rene Vogt的回答,你可以使用switch语句结合null条件运算符.它使代码更具可读性:
switch (var?.ToString())
{
case "A":
return 1;
case "B":
return 2;
default:
return 0;
}
Run Code Online (Sandbox Code Playgroud)