[C#] Рефспамер LiveInternet (первый опыт)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by GlooK, 11 Jan 2011.

  1. GlooK

    GlooK Elder - Старейшина

    Joined:
    20 Apr 2007
    Messages:
    172
    Likes Received:
    53
    Reputations:
    10

    Рефспамер LiveInternet

    [​IMG]

    Это мой первый опыт написания программы на C#.
    Для этой программы мной был написан класс LiveInternet.Rating и
    в нем были использованы такие приемы как многопоточность, синхронизация потоков, события и т.д.

    Что такое рефспам?

    Просьба знатоков C# прокритиковать код, т.к. писал с помощью гугла и мсдн.


    Класс LiveInternet - http://pastebin.com/hrEBycYm
    Исходники и бинарники

     
    2 people like this.
  2. Wave

    Wave Member

    Joined:
    15 Aug 2010
    Messages:
    89
    Likes Received:
    11
    Reputations:
    0
    интересный пример )

    Если на делфи смог бы тебе помочь... делал много потомность для отправки сообщений на форуме...
     
  3. GlooK

    GlooK Elder - Старейшина

    Joined:
    20 Apr 2007
    Messages:
    172
    Likes Received:
    53
    Reputations:
    10
    На делфи то я знаю как делать.
    Сам мигрирую из delphi в c# =)
     
  4. j-prof

    j-prof Banned

    Joined:
    29 Aug 2010
    Messages:
    321
    Likes Received:
    11
    Reputations:
    -4
    первое чо пришло в голову юзай foreach
    а и вмест классов с 2мя полями может лучше юзать структуры
     
    #4 j-prof, 11 Jan 2011
    Last edited: 11 Jan 2011
  5. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    1. оператор ?:
    2. using
    3. Convert.ToString(i); -> i.ToString()
    4. lock (this), нельзя так лочить, создаешь отдельный Object и его лочишь.

    это так, проскроллив сорс от LI
     
  6. GlooK

    GlooK Elder - Старейшина

    Joined:
    20 Apr 2007
    Messages:
    172
    Likes Received:
    53
    Reputations:
    10
    1. Мне кажется это снижает читабельность кода =)
    2. Что не так с using?
    3. Спасибо!
    4. в первом варианте так и было. Приму на заметку.

    Вроде бы foreach использовал где мог.
    Про структуры пока не знаю. Почитаю, спс.
     
  7. j-prof

    j-prof Banned

    Joined:
    29 Aug 2010
    Messages:
    321
    Likes Received:
    11
    Reputations:
    -4
    он наверн имел ввиду
    using(переменная )
    {
    код
    }
    ну вмест try catch
    но хз
     
  8. D4mp

    D4mp Banned

    Joined:
    28 Jul 2010
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    Интересный сорец, поковырял =)
    Правда не помешало-бы использование соксов, но в стандартном HttpWebRequest этого нету =( Сам вчера мучался... пришлось использовать другую его реализацию =(
     
  9. GlooK

    GlooK Elder - Старейшина

    Joined:
    20 Apr 2007
    Messages:
    172
    Likes Received:
    53
    Reputations:
    10
    А, понятно.
    Имелось ввиду
    using( создание экземпляра)
    {
    код
    }
    Вместо Close =)
     
  10. X-rus

    X-rus Member

    Joined:
    22 Dec 2010
    Messages:
    88
    Likes Received:
    22
    Reputations:
    4
    Для генерирования событий, можно сделать отдельные методы.

    Пример:
    protected virtual void OnCategoryReceived(param1, param2)
    {
    if (CategoryReceived != null)
    {
    CategoryReceived(param1, new CategoryEventArgs(param2));
    }
    }

    К именам делегатов, можно добавлять приставку - EventHandler, а к событиям - Event.

    Ещё, очень бы приветствовались XML комментарии и использование регионов (#region).

    P.S. Здесь можешь почитать, почему лучше не делать lock (this).
     
    #10 X-rus, 11 Jan 2011
    Last edited: 11 Jan 2011
    1 person likes this.
  11. GlooK

    GlooK Elder - Старейшина

    Joined:
    20 Apr 2007
    Messages:
    172
    Likes Received:
    53
    Reputations:
    10
    Ясно. За совет про заворачивания событий в методы, отдельное спасибо)