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

    +115

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    public bool checkUser(UserModel model = null)
    {
    	check:
    	if(model != null)
    		if(model.authenticated != false)
    			if(model._id > 0)
    				return true;
    			else
    				goto check;
    		else
    			goto check;
    	else
    		goto check;
    	return false;
    }

    а вдруг?!

    Запостил: d3n4, 19 Декабря 2012

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

    • Жесть какая
      Ответить
    • Могу предположить, что модель работает в другом потоке и это такая "синхронизация"... Но goto в сравнении с nil...
      Ответить
      • А даже если и в другом потоке - как другой поток изменит значение model если model==null? Просто мина замедленного действия...
        Ответить
    • Метод, который просто не может закончиться неудачно.
      Ответить
    • Смеялся долго, хороший юморист у вас работает.
      Ответить
    • Циклы активного ожидания результатов работы из другого потока. Убиват! Питушок-создатель нихрена не видит, что его программа тормозит, пока её заказчик не запустит на одноядерной машине.
      Ответить
      • Если authenticated и _id еще могут измениться, то сам model - никогда, и цикл внезапно может оказаться вечным...
        Ответить
      • Кстати, это не из эклипса код?
        Ответить
    • спасибо. с таким кодом , точно и муха не пролетит.
      Ответить
    • Было бы неплохо ещё обернуть трайкатчами пожирнее.
      Ответить
      • Зачем, чтобы ловить NullReferenceExeption?
        Ответить
        • да нет, просто на всякий случай, а вдруг что.
          Ответить
      • try { код из топика } catch (Exception e) { goto check; } ?
        Ответить
        • Во, типа того. Это компилируется вообще, кстати?
          Ответить
    • Более читабельная версия, по идее, выглядит так:
      public bool checkUser(UserModel model = null)
      {
      	while(true) 
      	    if(model != null && model.authenticated && model._id > 0)
                       return true;
      	return false;
      }
      Ответить

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