1. Список говнокодов пользователя svist

    Всего: 3

  2. C# / Говнокод #2828

    +121.6

    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
    16. 16
    if (sender == ccShowTrackSince)
    {
    	if (TfrmMessageBox.Show("Введенное значение начала периода располагается во времени позже введенного конца периода.\r\nИзменить начало периода (да) или конец периода (нет)?",
                         PluginFullName, MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
    		ccShowTrackSince.Focus();
    	else
    		ccShowTrackTo.Focus();
    }
    else if (sender == ccShowTrackTo)
    {
    	if (TfrmMessageBox.Show("Введенное значение конца периода располагается во времени раньше введенного начала периода.\r\nИзменить конец периода (да) или начало периода (нет)?",
                         PluginFullName, MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
    		ccShowTrackTo.Focus();
    	else
    		ccShowTrackSince.Focus();
    }

    Лично меня веселит новое применение для кнопок Yes/No.

    svist, 19 Марта 2010

    Комментарии (16)
  3. C# / Говнокод #2683

    +114.3

    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
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    public static MapObjectConfig[] CollectInfoAboutClassesInProgram()
    	{
    		List<MapObjectConfig> result = new List<MapObjectConfig>();
    		foreach (Assembly assem in AppDomain.CurrentDomain.GetAssemblies())
    			foreach (Module module in assem.GetModules())
    				try
    				{
    					foreach (Type type in module.GetTypes())
    						if (type.IsSubclassOf(typeof(BaseMapObject)))
    						{
    							MethodInfo method = type.GetMethod("GetCommentDescription", BindingFlags.Static | BindingFlags.Public);
    							if (method != null)
    							{
    								object res = method.Invoke(null, null);
    								if (res is MapObjectConfig)
    								{
    									MapObjectConfig desc = (MapObjectConfig)res;
    									result.Add(desc);
    								}
    							}
    						}
    				}
    				catch (ReflectionTypeLoadException ex)
    				{
    					//иногда отказывается загружать типы...
    				}
    		return result.ToArray();
    	}

    Метод являет собой пожалуй самую проктологическую реализацию хранения дефолтных настроек, которую когда-либо видел. Просмотр всех сборок загруженых в домен приложения, поиск в них классов наследованных от BaseMapObject и вызов их метода GetCommentDescription, который и вернет объект с настройками... Нельзя обезьянам давать гранаты товарищи.

    svist, 27 Февраля 2010

    Комментарии (4)
  4. C# / Говнокод #2682

    +113.4

    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
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    while (!e.Cancel) //цикл получения остальных страниц
    {
    	//прерывание получения данных (если заказали)
    	if (worker.CancellationPending)
    	{
    		e.Cancel = true;
    		break;
    	}
    	//получение очередной странцы
    	if (page == null)
    		page = _gateway.GetTrackPage(id, pageID);
    	if (page != null)
    	{
    		if (page.Type == PageType.NotReady) //если страница не готова - на следующий круг
    		{
    			page = null;
                                                     for (int i = 0; i < waitTimeout && !worker.CancellationPending; i++) //ожидание таймаута
    			Thread.Sleep(1000);
    			waitTimeout *= 2; //наращивание таймаута с каждым получением NotReady
    			if (waitTimeout > 10)
    			waitTimeout = 10;
    		}
    .........
    	}
    .........
    }

    Опрашиваем в цикле сервер вызовами _gateway.GetTrackPage. Если сервер отвечает что не готов page.Type == PageType.NotReady, то имеем креатив на тему увеличения интервала опроса...

    svist, 27 Февраля 2010

    Комментарии (2)