C# 使用if语句声明变量的更简洁的方法
有人能告诉我一个更好的方法来写这样的东西吗? 我的意思是,我知道我可以告诉它直接从文本框中取出并预设路径,但我仍然想知道如何编写类似于此的内容C# 使用if语句声明变量的更简洁的方法,c#,C#,有人能告诉我一个更好的方法来写这样的东西吗? 我的意思是,我知道我可以告诉它直接从文本框中取出并预设路径,但我仍然想知道如何编写类似于此的内容 if (opt_textbox.Text == "") opt = $"{Environment.GetFolderPath(Environment.SpecialFolder.MyMusic)}\\TRNX_CONV\\"; else opt
if (opt_textbox.Text == "")
opt = $"{Environment.GetFolderPath(Environment.SpecialFolder.MyMusic)}\\TRNX_CONV\\";
else
opt = opt_textbox.Text;
你所拥有的一切都很好
还有一种方法:
var x = (opt_textbox.Text == "")
? $"{Environment.GetFolderPath(Environment.SpecialFolder.MyMusic)}\\TRNX_CONV\\"
: opt_textbox.Text;
最好使用string.IsNullOrEmpy或IsNullOrWhitespace而不是
==”
你所拥有的一切都很好
如果你想变得更花哨,在c#>=7中,你可以使用模式变量
string opt = opt_textbox.Text is var text && !string.IsNullOrEmpty(text)
? text
: "Empty";
还是“长格式”版本
if( opt_textbox.Text is var text && text != "")
{
opt = text;
}
else
{
opt = "Empty"
}
我认为你的代码很好。我可以想出两种重写代码的方法,尽管它们是否“更好”还有争议。1) 取第一个非空值
opt=new[]{opt_textbox.Text,$“{Environment.GetFolderPath(Environment.SpecialFolder.MyMusic)}\\TRNX_CONV\\\\”}.FirstOrDefault(x=>!string.IsNullOrEmpty(x))代码>2)三元:opt=string.IsNullOrEmpty(opt_textbox.Text)$“{Environment.GetFolderPath(Environment.SpecialFolder.MyMusic)}\\TRNX\u CONV\\”:opt\u textbox.Text