1. C# / Говнокод #4819

    +115

    1. 1
    2. 2
    if(!string.IsNullOrEmpty(((AccessLevelObject)cbAccessLevel.SelectedItem).Description))
            txtAccessLevelDescription.Text = ((AccessLevelObject)cbAccessLevel.SelectedItem).Description;

    догадайтесь что здесь лишнее )))

    Запостил: Maxim546, 03 Декабря 2010

    Комментарии (14) RSS

    • скобки, и, возможно каст
      Ответить
      • Как-то так.
        if (!string.IsNullOrEmpty(cbAccessLevel.Sel ectedItem as string))
        txtAccessLevelDescription.Text = cbAccessLevel.SelectedItem as string;
        Ответить
        • .Description не надо?
          Ответить
          • Смотри,
            cbAccessLevel - это ComboBox, и у него есть свойство SelectedItem, которое object.
            txtAccessLevelDescription - это TextBox, и у него есть свойство Text.
            AccessLevelObject - это какой-то свой класс, у которого есть Description и походу explicit conversion из object.

            В общем AccessLevelObject сдесь лишний. Вообще непонятно зачем он тут.
            Ответить
            • class AccessLevelObject
              {
              public AccessLevelObject()
              {

              }
              public AccessLevelObject(DataRow row)
              {
              this.Id = Convert.ToInt32(row["id"]);
              this.Lvl = row["Lvl"].ToString();
              this.Description = row["Description"] == null ? "" : row["Description"].ToString();
              }

              public int Id
              {
              get;
              set;
              }

              public string Lvl
              {
              get;
              set;
              }

              public string Description
              {
              get;
              set;
              }

              //public override string ToString()
              //{
              // return Lvl.ToString();
              //}
              }
              Ответить
        • Только если AccessLevelObject.Description равно AccessLevelObject.toString() (или как там это в C# звучит).
          Ответить
        • AccessLevelObject alo = cbAccessLevel as AccessLevelObject;
          if (alo != null && !String.IsNullOrEmpty(alo.Description))
              txtAccessLevelDescription.Text = alo.Description;
          Ответить
          • 1) cbAccessLevel.SelectedItem.
            2) Проверка на null излишня (автор сам заполнял ComboBox AccessLevelObject-ами).
            3) Если уж выделять переменную, то ((AccessLevelObject)cbAccessLevel.Select edItem).Description.
            4) В целом это вопрос вкуса (стиля) -- дублирование кода против лишней строчки и переменной.
            Ответить
    • зачем нужен
      if(!string.IsNullOrEmpty(((AccessLevelOb ject)cbAccessLevel.SelectedItem).Descrip tion))
      ??? это лишнее ))) так как ничего страшного не произойдёт если текст-боксу присвоить нулл(ничего не отобразит) а вот проверка cbAccessLevel.SelectedItem на тру - нужна ))
      Ответить
      • Ну я как-бы подумал, что это для того чтобы когда в txtAccessLevelDescription.Text есть некое значение, и когда в cbAccessLevel.SelectedItem пустой текст, то нужно оставить то что было, иначе присвоить новое.
        Если это не требуется, то я с вами согласен на все 100.
        Ответить
      • Это неравнозначный код.
        Ответить

    Добавить комментарий