代码之家  ›  专栏  ›  技术社区  ›  wibby35

是否可以转换为内联?

  •  0
  • wibby35  · 技术社区  · 7 年前

    我有以下代码:

    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();
        }
    }
    

    我想知道是否有可能将所有这些整合到一个嵌套的内联if中?

    2 回复  |  直到 7 年前
        1
  •  3
  •   Vlad    7 年前

    如果您真的需要内联,请将内联尽量短,否则会一团糟。

    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;
    
        2
  •  0
  •   hardkoded    7 年前

    你可以这样做。这是可读性和压缩性之间的良好平衡。

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