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

    +140

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    private void SendFile(string root, string url, DateTime dateTimeBegin)
    {
    	if ( ... isSend ... )
    	{
    		...MoveToArchive();
    		...Dispose();
    	}
    	else
    	{
    		SendFile(root, url, dateTimeBegin);
    	}
    }

    Ну тут всё ясно...
    Если файлики отсылаются нормально, то всё работает хорошо.
    Зато если файлики не отсылаются, то начинается злая рекурсия, которая постепенно сжирает всю память :).

    Запостил: ddv_demon, 13 Сентября 2012

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

    • void SomeMethod(...)
      {
        try
        {
          ...
        }
        catch
        {
          SomeMethod(...);
        }
      }
      Ответить
    • Многие компиляторы оптимизируют хвостовую рекурсию. Это развернется в бесконечный цикл.
      Ответить
      • Если SendFile виртуальная функция, то не развернется
        Ответить
        • В сишарпике приватные функции виртуальны? Не верю.
          Резон так делать есть только в C++.
          Ответить
          • Виртуальны все функции в сишарпике.
            Ответить
            • И как её оверрайдить?
              Ответить
            • 1) не путаем с жабой.
              > все функции
              2) лямбды виртуальны, орлы?
              Ответить
              • В жабе как раз невиртуальны приватные и статические функции, потому и удивился.
                Лямбды небось экстендят что-то вроде IFunc и потому виртуальны.
                Ответить

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