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