可以转换为内联如果?

时间:2017-09-21 14:14:16

标签: c# if-statement conditional-operator

我有这段代码:

if (date.Equals(DateTime.MinValue))
{
    this.textBox.Text = string.Empty;
}
else
{
    if (!myList.Any())
    {
        this.textBox.Text = 
        CheckIfSaturdayOrSunday(date).ToShortDateString();
    }
    else
    {
        this.textBox.Text = CheckMyList(date, 
            myList).ToShortDateString();
    }
}

我想知道是否可以将所有内容整合到嵌套内联中?

如果没有,我会保持原样。

谢谢!

2 个答案:

答案 0 :(得分:3)

如果你真的需要内联,请保持内联尽可能短,否则它会变得一团糟。

var text = string.Empty;

if (!date.Equals(DateTime.MinValue))
{
   var dateCheck = myList.Any() ? 
      CheckMyList(date, myList) : CheckIfSaturdayOrSunday(date);

   text = dateCheck.ToShortDateString();
}

this.textBox.Text = text;

答案 1 :(得分:0)

你可以这样做。这是可读性和冷凝之间的良好平衡。 我不认为嵌入内联ifs是一个好主意,它使它难以阅读。

if (date.Equals(DateTime.MinValue))
{
    this.textBox.Text = string.Empty;
}
else
{
    this.textBox.Text = myList.Any() ? 
         CheckMyList(date, myList).ToShortDateString(); :
         CheckIfSaturdayOrSunday(date).ToShortDateString();

}