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

    +112.2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if (ctrl.GetType().Name == "TextBox")
    {
           TextBox tb = (TextBox)ctrl;
    
         // остальное вырезано
    }

    Я даже комментить не могу это.

    Запостил: headliner, 19 Января 2010

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

    • соберись с силами и прокомментируй :)
      Ответить
      • Добавлю лишь, что переменная "ctrl" является типом "object". :)
        Ответить
    • К.О. сообщает:
      TextBox tb = ctrl as TextBox;
      if (tb != null)
      {
      //do something
      }
      )))
      Ответить
      • в оригинале меньше проверок. сделал хуже чем было.
        Ответить
        • во-первых, проверка по имени типа не есть гуд, поскольку разные неймспейсы могут содержать типы со одинаковыми названиям, и мы не можем точно идентифицировать тип.
          во-вторых, если не удастся привести ctrl к текстбоксу с помощью явного приведения, будет брошен эксепшн, а в моем коде вернется null
          Ответить
      • if (TextBox tb = ctrl as TextBox)
        {
        //do something
        }
        )))
        Ответить
    • ахах +100
      Ответить

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