1. 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)
  2. 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)
  3. C# / Говнокод #2671

    +961.7

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    int[] a = new int[5];
                int i = 0;
                foreach (var b in a)
                {
                    a[i] = Convert.ToInt32(Console.ReadLine());
                    i++;
                }
                Console.ReadKey();

    Bor1k, 25 Февраля 2010

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

    +966.3

    1. 1
    2. 2
    int factor = (chbFactor.Checked) ? 1 : 0; // bool to int
    factor = (factor * 2) - 1; // -1 or +1

    Вторая строчка превращает 0 в -1 а единичку не трогает

    Vidmak, 24 Февраля 2010

    Комментарии (23)
  5. C# / Говнокод #2647

    +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
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    static void JoinFiles(string FileOne, string FileTwo, string Out)
    		{
    			//declare head size
    			const long HeadSize = sizeof(long) * 4;
    			//get files size
    			long FFS = (new FileInfo(FileOne).Length),
    				  SFS = (new FileInfo(FileTwo).Length);
    			//Full paths of files
    			string FFFN = Path.GetFileName(Path.GetFullPath(FileOne)),
    					 SFFN = Path.GetFileName(Path.GetFullPath(FileTwo));
    			//calculate offsets
    			long FirstFileOffset = HeadSize + FFFN.Length,
    				  FirstFileNameOffset = HeadSize,
    				  SecondFileNameOffset = FirstFileOffset + FFS,
    				  SecondFileOffset = SecondFileNameOffset + SFFN.Length;
    			//declare head
    			byte[] Head = new byte[HeadSize];
    			/*	
    			 *		FFO	FFNO			SFO	SFNO
    			 */
    			//Format head
    			Head = JoinArrays<byte>(BitConverter.GetBytes(FirstFileOffset),
    										 BitConverter.GetBytes(FirstFileNameOffset),
    										 BitConverter.GetBytes(SecondFileOffset),
    										 BitConverter.GetBytes(SecondFileNameOffset));
    			//declare streams
    			System.IO.BinaryReader FBR = new BinaryReader(File.OpenRead(FileOne));
    			System.IO.BinaryWriter BW = new System.IO.BinaryWriter(File.Create(Out));
    			//Write head information
    			foreach (byte b in Head) BW.Write(b);
    			//Write first file name
    			byte[] buffer = System.Text.ASCIIEncoding.ASCII.GetBytes(FFFN);
    			BW.Write(buffer, 0, buffer.Length);
    			//Write first file
    			for (long id = 0; id < FFS; id++) BW.Write(FBR.ReadByte());
    			//Write second file name
    			buffer = System.Text.ASCIIEncoding.ASCII.GetBytes(SFFN);
    			BW.Write(buffer, 0, buffer.Length);
    			//Open second file
    			FBR.Close();
    			FBR = new BinaryReader(File.OpenRead(FileTwo));
    			//Write second file
    			for (long id = 0; id < SFS; id++) BW.Write(FBR.ReadByte());
    			//Save result
    			BW.Flush();
    			//Close streams
    			FBR.Close();
    			BW.Close();
    		}

    Функция склеивания двух файлов. Писал вчера вечером, когда утром посмотрел, я понял что писал я это очень поздно.

    psina-from-ua, 21 Февраля 2010

    Комментарии (13)
  6. C# / Говнокод #2636

    +145.4

    1. 1
    ViewState["Action"] = result.client == "merchantName" ? false : true;

    nettrash, 18 Февраля 2010

    Комментарии (19)
  7. C# / Говнокод #2624

    +143.8

    1. 1
    News news = new News();

    metaball, 17 Февраля 2010

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

    +112.1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    public IEnumerator GetEnumerator()
                {
                    for (int CurID = 0; CurID < (controls.Count + animations.Count) / 2; CurID++)
                    {
                        KeyValuePair<Control, Animation> kvp = new KeyValuePair<Control, Animation>(controls[CurID], animations[CurID]);
                        yield return kvp;
                    }       
                }

    Писал я код, и задумался. А когда очнулся - уже было это.
    ЗЫ. controls.Count == animations.Count

    psina-from-ua, 14 Февраля 2010

    Комментарии (5)
  9. C# / Говнокод #2587

    +142.6

    1. 1
    myDataSet.Tables[0].DataSet.GetXml();

    need XML Data Source from XML for making dynamic ASP:Menu
    This code makes DataSource as a Parent element and elements from sql as a Children
    I need Parent Elements only from my sql. To make it like a Horizontal TabSet . . .

    Nemerle, 10 Февраля 2010

    Комментарии (17)
  10. C# / Говнокод #2580

    +109.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
    //Dictionary used to check if eventValues are unique
    Dictionary<string, string> uniqueEventValues = new Dictionary<string, string>();
    
    //... заполняем коллекцию
    
    try {
        uniqueEventValues.Add(eventValue, "X");
    }
    catch (Exception ex) {
        if (ex.Message.Equals("An item with the same key has already been added.")) {
            msgAddEventParams.Text = "EventValues must be unique. " + eventValue + " is duplicate.";
            msgAddEventParams.Visible = true;
            return;
        }
    }

    мы не ищем легких путей!

    Sharp, 09 Февраля 2010

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