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

    +138.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
    /*А вот так РНР программисты пишут код для ASP.NET.
    См проверку типов*/
    
    protected HttpContext CurrentContext
    {
     get {
      return _context;
     }
     set {
      if (typeof(HttpContext) == value.GetType())
       _context = value;
      else
       //...
     }
    }

    ArbuzOFF, 29 Августа 2009

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

    +139

    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 void Recalculate(List<DateTime> weekDates,List<HistoricalRateOccurence> historicalRates) {
                UnitsTotal = MonUnits + TuesUnits + WedsUnits + ThursUnits + FriUnits + SatUnits + SunUnits;
                if (historicalRates.Count == 0) {
                    PayAmount = UnitsTotal*PayRate;
                }else {
                    for (int i = 0; i < weekDates.Count; i++) {
                        switch (i) {
                            case 0:
                                PayAmount += MonUnits*GetPayRateForDay(PayRate, weekDates[i], historicalRates);
                                break;
                            case 1:
                                PayAmount += TuesUnits * GetPayRateForDay(PayRate, weekDates[i], historicalRates);
                                break;                            
                            case 2:
                                PayAmount += WedsUnits * GetPayRateForDay(PayRate, weekDates[i], historicalRates);
                                break;                            
                            case 3:
                                PayAmount += ThursUnits * GetPayRateForDay(PayRate, weekDates[i], historicalRates);
                                break;                            
                            case 4:
                                PayAmount += FriUnits * GetPayRateForDay(PayRate, weekDates[i], historicalRates);
                                break;
    
                        }
                    }
                }
                ChargeAmount = UnitsTotal * AmsBillRate;
            }

    Никогда не доверяй циклу!

    xrundelek, 28 Августа 2009

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

    +136.2

    1. 1
    2. 2
    3. 3
    var ids = form.Keys;
    
    if(ids.Length == 0 || ids.Length > 1) { throw Exception;}

    кидать исключение если ids.Length !=1

    xrundelek, 28 Августа 2009

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

    +127.7

    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
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    ...
    
    // Импорт функций для работы с MailSlot
    [DllImport("kernel32.dll")]
    static extern int CreateMailslot(
    	string name,
    	int maxMessageSize,
    	int readTimeout,
    	int securityAttributes);
    [DllImport("kernel32.dll")]
    static extern int GetMailslotInfo(
    	int hFile,			// mailslot handle
    	int maxMsgSize,		// maximum message size
    	int* lpcbMessage,	// size of next message
    	int* lpcMessage,	// number of messages
    	int timeout);		// read time-out
    [DllImport("kernel32.dll")]
    static extern int ReadFile(
    	int hFile,
    	void* lpBuffer,
    	int nNumberOfBytesToRead,
    	int* lpNumberOfBytesRead,
    	int overlapped);
    
    ...
    
    // Чтение входящего пакета
    private void readMessage(int cbMessage)
    {
    	int bytesReaden, fResult;
    	byte[] buf = new byte [102400];
    
    	fixed (byte* data = buf)
    	{
    		fResult = ReadFile(
    			handleServer,
    			data,
    			cbMessage,
    			&bytesReaden,
    			0);
    	}
    
    	if (fResult == 0)
    	{
    		textBox_chat.AppendText("--< Невозможно прочесть данные >--\n");
    		return;
    	}
    
    	string str = "";
    	MsgType type = (MsgType)'e';
    	if (buf.Length > 0)
    	{
    		type = (MsgType)buf[0];
    		for (int i = 0; i < bytesReaden; i++)
    			str += BitConverter.ToChar(buf,i*2);
    		//str = buf.ToString();
    		str = str.Remove(0, 1);
    	}
    
    	switch (type)
    	{
    		...
    	}		
    }
    
    ...

    Учебная задача: чат на MailSlot.
    Битва с шарпом за указатели, за массивы и т.д.

    k06a, 26 Августа 2009

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

    +134.9

    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
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    public Language(string lang)
    {
    if (lang != null)
    {
    if (lang.IndexOf("Afrikaans") > -1) lang = "1078";
    if (lang.IndexOf("Albanian") > -1) lang = "1052";
    if (lang.IndexOf("Arabic") > -1)
    {
    lang = "1025";
    if (lang.IndexOf("Algeria") > -1) lang = "5121";
    if (lang.IndexOf("Bahrain") > -1) lang = "15361";
    if (lang.IndexOf("Egypt") > -1) lang = "3073";
    if (lang.IndexOf("Egypt") > -1) lang = "2049";
    if (lang.IndexOf("Iraq") > -1) lang = "2049";
    if (lang.IndexOf("Jordan") > -1) lang = "11265";
    if (lang.IndexOf("Kuwait") > -1) lang = "13313";
    if (lang.IndexOf("Lebanon") > -1) lang = "12289";
    if (lang.IndexOf("Libya") > -1) lang = "4097";
    if (lang.IndexOf("Morocco") > -1) lang = "6145";
    if (lang.IndexOf("Oman") > -1) lang = "8193";
    if (lang.IndexOf("Qatar") > -1) lang = "16385";
    if (lang.IndexOf("Saudi Arabia") > -1) lang = "1025";
    if (lang.IndexOf("Syria") > -1) lang = "10241";
    if (lang.IndexOf("Tunisia") > -1) lang = "7169";
    if (lang.IndexOf("U.A.E.") > -1) lang = "14337";
    if (lang.IndexOf("Yemen") > -1) lang = "9217";
    }
    if (lang.IndexOf("Armenian") > -1) lang = "1067";
    if (lang.IndexOf("Assamese") > -1) lang = "1101";
    if (lang.IndexOf("Azeri") > -1)
    {
    lang = "2092";
    if (lang.IndexOf("Cyrillic") > -1) lang = "2092";
    if (lang.IndexOf("Latin") > -1) lang = "1068";
    }
    if (lang.IndexOf("Basque") > -1) lang = "1069";
    if (lang.IndexOf("Belarusian") > -1) lang = "1059";
    if (lang.IndexOf("Bengali") > -1) lang = "1093";
    if (lang.IndexOf("Bulgarian") > -1) lang = "1026";
    if (lang.IndexOf("Catalan") > -1) lang = "1027";
    if (lang.IndexOf("Chinese") > -1)
    {
    lang = "2052";
    if (lang.IndexOf("Hong Kong") > -1) lang = "3076";
    if (lang.IndexOf("Macao") > -1) lang = "5124";
    if (lang.IndexOf("PRC") > -1) lang = "2052";
    if (lang.IndexOf("Singapore") > -1) lang = "4100";
    if (lang.IndexOf("Taiwan") > -1) lang = "1028";
    }
    if (lang.IndexOf("Lithuanian") > -1) lang = "2087";
    if (lang.IndexOf("Croatian") > -1) lang = "1050";
    if (lang.IndexOf("Czech") > -1) lang = "1029";
    if (lang.IndexOf("Danish") > -1) lang = "1030";
    if (lang.IndexOf("Divehi") > -1) lang = "1125";
    if (lang.IndexOf("Dutch") > -1)
    {
    lang = "1043";
    if (lang.IndexOf("Belgium") > -1) lang = "2067";
    if (lang.IndexOf("Netherlands") > -1) lang = "1043";
    }
    if (lang.IndexOf("English") > -1)
    {
    lang = "2057";
    if (lang.IndexOf("Australia") > -1) lang = "3081";
    if (lang.IndexOf("Belize") > -1) lang = "10249";
    if (lang.IndexOf("Canada") > -1) lang = "4105";
    if (lang.IndexOf("Caribbean") > -1) lang = "9225";
    if (lang.IndexOf("Ireland") > -1) lang = "6153";
    if (lang.IndexOf("Jamaica") > -1) lang = "8201";
    if (lang.IndexOf("New Zealand") > -1) lang = "5129";
    if (lang.IndexOf("Philippines") > -1) lang = "13321";
    if (lang.IndexOf("South Africa") > -1) lang = "7177";
    if (lang.IndexOf("Trinidad") > -1) lang = "11273";
    if (lang.IndexOf("United Kingdom") > -1) lang = "2057";
    if (lang.IndexOf("United States") > -1) lang = "1033";
    if (lang.IndexOf("Zimbabwe") > -1) lang = "12297";
    }
    if (lang.IndexOf("Estonian") > -1) lang = "1061";
    if (lang.IndexOf("Faeroese") > -1) lang = "1080";
    if (lang.IndexOf("Farsi") > -1) lang = "1065";
    if (lang.IndexOf("Finnish") > -1) lang = "1035";
    if (lang.IndexOf("French") > -1)
    {
    lang = "1036";
    if (lang.IndexOf("Belgium") > -1) lang = "2060";
    if (lang.IndexOf("Canada") > -1) lang = "3084";
    if (lang.IndexOf("France") > -1) lang = "1036";
    if (lang.IndexOf("Luxembourg") > -1) lang = "5132";
    if (lang.IndexOf("Monaco") > -1) lang = "6156";
    if (lang.IndexOf("Switzerland") > -1) lang = "4108";
    }
    if (lang.IndexOf("Macedonian") > -1) lang = "1071";
    if (lang.IndexOf("Galician") > -1) lang = "1110";
    if (lang.IndexOf("Georgian") > -1) lang = "1079";
    if (lang.IndexOf("German") > -1)
    {
    lang = "1031";
    if (lang.IndexOf("Austria") > -1) lang = "3079";
    if (lang.IndexOf("Germany") > -1) lang = "1031";

    Таблица системных языков. http://forum.sources.ru/index.php?showtopic=270133&view=findpost &p=2243892

    TerraGhost, 26 Августа 2009

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

    +133.9

    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
    switch (aDataType.FullName)
    			{
    				case "System.SByte":	
    				case "System.Int16":	
    				case "System.Int32":	
    				case "System.Int64":	
    				case "System.Single":	
    				case "System.Double":	
    				case "System.Decimal":	
    				case "System.DateTime":	
    					_IsNumeric = true;
    					break;
    				case "System.String":   
    					_IsNumeric = false;
    					break;	
    				default:
    					throw new ArgumentException("Not supported field data type: " + 
    						aDataType.FullName, "aDataType");
    			}

    Не надо хардкодить названия типов

    sanya_fs, 26 Августа 2009

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

    +130

    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
    public static LanguageConfiguration GetLanguageByUrl()
            {
                string requestHost = HttpContext.Current.Request.Url.Host.ToLower();
    
                foreach (LanguageConfiguration language in languages.Values)
                  foreach (DomainConfiguration domain in language.Domains)
                        if (domain.Name.Equals(requestHost))
                            return language;
                
                return languages[LanguageCodes[0]];
            }
    
            public static List<string> LanguageCodes
            {
                get
                {
                    //caching languages
                    if (languages == null)
                    {
                        languages = new Dictionary<string, LanguageConfiguration>();
                        if (languagesConfiguration.Languages.Count > 0)
                            foreach (LanguageConfiguration language in languagesConfiguration.Languages)
                                languages.Add(language.Code, language);
                        else
                            languages.Add(String.Empty, new LanguageConfiguration());
                    }
                    return  new List<string>(languages.Keys);
                }
            }

    "Сначала отрежь, потом отмерь".

    Cyxapb, 25 Августа 2009

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

    +132.8

    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
    //------------------------------------------------------------
    // Copyright (c) Microsoft Corporation.  All rights reserved.
    //------------------------------------------------------------
    
       private void AddDesigner()
            {
                Lazy<HostSurfaceFactory, IDesignerMetadataView> exportSurfaceFactory = fileNewDialog.GetHostFactory();
                HostControl hc = new HostControl();
                if (designerCounts.ContainsKey(exportSurfaceFactory.Metadata.ItemType))
                    designerCounts[exportSurfaceFactory.Metadata.ItemType]++;
                else
                    designerCounts.Add(exportSurfaceFactory.Metadata.ItemType, 1);
                string siteName = exportSurfaceFactory.Metadata.ItemType + designerCounts[exportSurfaceFactory.Metadata.ItemType].ToString();
                HostSurface hostSurface = exportSurfaceFactory.Value.CreateNew(siteName);
                hc.InitializeHost(hostSurface);
                string fileName = siteName + "." + exportSurfaceFactory.Metadata.FileExtension;
                TabPage tabpage = new TabPage(fileName + " - Design");
                tabpage.Tag = exportSurfaceFactory.Metadata.Language;
                hc.Parent = tabpage;
                hc.Dock = DockStyle.Fill;
                this.tabControl1.TabPages.Add(tabpage);
                this.tabControl1.SelectedIndex = this.tabControl1.TabPages.Count - 1;
                this.outputWindow.Writeline("Opened new host.");
                this.toolbox.DesignerHost = hostSurface.DesignerHost;
                this.solutionExplorer.AddFileNode(fileName);
                SetupMenus(hostSurface);
            }

    Пример из MEF. Написан неким Dinesh Chandnani.

    Gru, 25 Августа 2009

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

    +126.9

    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
    else
    																		{
    																			if ((index == 103))
    																			{//bla
    																			}
    																			else
    																			{
    																				if ((index == 104))
    																				{//bla
    																				}
    																			}
    																		}
    																	}
    																}
    															}
    														}
    													}
    												}
    											}
    										}
    									}
    								}
    							}
    						}
    					}
    				}
    			}
    		}
    	}
    }                                                                                                                                                                                                                                                                                                                                                        } }}}}}}}}}}}}}}}}}}}}}}}}}

    Конец однородного файла (В моем маленьком случае 300Kb) сгенерированным Microsoft EdmGen.

    62316e, 24 Августа 2009

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

    +129

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    private string              fEmail;
    ...
    public string Email  
    { 
        get {return fEmail = fEmail != null ? fEmail: string.Empty;}
        set {fEmail=value;}
    }

    чтобы проверить на нулл переменную fEmail, ее нужно зачем то присвоить самой же себе, долго вкуривал, но менять не стал. Наверное это заморочки с энхибернэйт

    З.Ы. версия фреймворка для которого было написано это чудо 1.1

    jackman, 21 Августа 2009

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