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

    +113

    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
    public static string GetShortName(string name, int length)
    {
        StringBuilder shortname = new StringBuilder(name);
        string[] str = new string[] { "ПС", "ОАО" };
        for (int i = 0; i < str.Length; i++)
            if (shortname.ToString().Length > str[i].Length && shortname.ToString().Substring(0, str[i].Length).ToUpper() == str[i])
                shortname.Remove(0, str[i].Length);
    
        str = new string[] { "ТЭЦ", "ГЭС", "ГРЭС" };
        for (int i = 0; i < str.Length; i++)
            if (shortname.ToString().IndexOf(str[i], StringComparison.CurrentCultureIgnoreCase) > 0)
                shortname.Remove(1, shortname.ToString().IndexOf(str[i]) - 1);
        return (shortname.Length > length) ? shortname.ToString().Substring(0, length).Trim() : shortname.ToString().Trim();
    }

    Опять же, из того, что досталось в наследство)

    invi, 16 Февраля 2012

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

    +115

    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
    try
    {
    	foreach (MapObjectBase item in objects)
    	{
    		GisTrack track = item as GisTrack;
    
    		if (track != null)
    		{
    			//ToolTipContent - наследник TextContent
    			ToolTipContent oToolTip = (ToolTipContent)track.ContentList.FirstOrDefault<IContent>(a => a is TextContent);
    			if (oToolTip != null)
    			{
    				track.ContentList.Remove(oToolTip);
    			}
    		}
    	}
    
    	this.map.Redraw(false);
    }
    catch (Exception ex)
    {
    	MonitoringManager.Instance.WriteLog(ex.ToString());
    }

    Linq - как граната. Смотря в чьих руках.

    ICELedyanoj, 14 Февраля 2012

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

    +120

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    public class BillingService : Handles<NewDayHasComeInMoscow>
    {
            public void When(NewDayHasComeInMoscow ev)
            {
                // ...
            }
    }

    pavelhritonenko, 14 Февраля 2012

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

    +141

    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
    private void tlistObject_SelectedIndexChanged(object sender, EventArgs e)
    {
    	IMapObject oTarget = this.tlistObjects.SelectedItem as IMapObject;
    
    	if (oTarget != null)
    	{
    		if (this.SelectedObject != null)
    		{
    			this.SelectedObject.ObjectMode = ObjectModeElements.None;
    		}
    		this.SelectedObject = this.tlistObjects.SelectedItem as IMapObject;
    		this.SelectedObject.ObjectMode = ObjectModeElements.Selected;
    	}
    }

    (Is + Explicit приведение) или (As + проверка на Null)?
    Ход конём.
    ОБЯЗАТЕЛЬНОЕ использование this при обращении к полям, свойствам и методам текущего класса - отдельная тема. Это одна из особенностей неповторимого стиля, присущего аффтару. Весь код забит thisами под завязку.

    ICELedyanoj, 10 Февраля 2012

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

    +971

    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
    using System;
    
    public class Man
    {
        static int num;
        public Man parent = new Man();    //У каждого человека есть родители, ведь так?
    
        static Man()
        {
            num = 0;
        }
    
        public Man()
        {
            num++;
        }
    }

    Компилятор C# против перенаселения, вовремя выдаёт StackOverflowException, пока расплодиться не успели..

    vistefan, 08 Февраля 2012

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

    +115

    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
    switch (pList)
                    {
                        #region Формы контейнера        |
                        case TObjects.ContainerForm         :
                            frmList                                         =   new TfrmContainerForm();
                            pnlMain                                         =   ((TfrmContainerForm)frmList).pnlMain;
                            Result                                          =   ((TfrmContainerForm)frmList).grList;
                            break;
                        #endregion
                        #region Тип контейнера          |
                        case TObjects.ContainerType         :
                            frmList                                         =   new TfrmContainerType();
                            pnlMain                                         =   ((TfrmContainerType)frmList).pnlMain;
                            Result                                          =   ((TfrmContainerType)frmList).grList;
                            break;
                        #endregion
                        #region Объект НВАЭС            |
                        case TObjects.Object                :
                            frmList                                         =   new TfrmObjects();
                            pnlMain                                         =   ((TfrmObjects)frmList).pnlMain;
                            Result                                          =   ((TfrmObjects)frmList).grList;
                            break;
                        #endregion
                        #region Исполнитель работ       |
                        case TObjects.DepSource             :
                            frmList                                         =   new TfrmDepSource();
                            pnlMain                                         =   ((TfrmDepSource)frmList).pnlMain;
                            Result                                          =   ((TfrmDepSource)frmList).grList;
                            break;
                        #endregion
                        #region Установка переработки   |
                        case TObjects.TreatSet              :
                            frmList                                         =   new TfrmTreatSet();
                            pnlMain                                         =   ((TfrmTreatSet)frmList).pnlMain;
                            Result                                          =   ((TfrmTreatSet)frmList).grList;
                            break;
                        #endregion
                        #region Контейнер               |
                        case TObjects.Container             :
                            frmList                                         =   new TfrmContainer();
                            pnlMain                                         =   ((TfrmContainer)frmList).pnlMain;
                            Result                                          =   ((TfrmContainer)frmList).grList;
                            break;
                        #endregion
                        #region Хранилище               |
                        case TObjects.Storage               :
                            frmList                                         =   new TfrmStorage();
                            pnlMain                                         =   ((TfrmStorage)frmList).pnlMain;
                            Result                                          =   ((TfrmStorage)frmList).grList;
                            break;
                        #endregion
    ...

    А тут ок. 400 таких вот строк.

    gcoder, 08 Февраля 2012

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

    +119

    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
    public  static  string      LoadGridDT          (TObjects pList, out DataTable Dt, params object[] pArgs)
    ...              
                    switch (pList)
                    {
                        case TObjects.Radio                 :
                            if (pArgs.Length == 1 && pArgs[0] is int)
                                vLoadResult = Protocol.Radionuclide.Load((int)pArgs[0], out Dt);
                            else if (pArgs.Length > 1 && pArgs[0] is int && pArgs[1] is bool)
                                vLoadResult = Part2.Radionuclide.Load((int)pArgs[0], out Dt);
                            else vLoadResult = Radionuclide.Load(out Dt);
                            break;
                        case TObjects.Protocol              :
                            // [0](int): Тип протокола; [1](int): Очередь; [2](bool): Активность; [3](int): Объект
                    if (pArgs.Length > 3 && pArgs[0] is int && pArgs[1] is int && pArgs[2] is bool && pArgs[3] is int)
                        if (pArgs.Length > 4 && pArgs[4] is int)
                            vLoadResult = Protocol.LoadList((int)pArgs[0], (int)pArgs[1], (int)pArgs[3], (bool)pArgs[2], out Dt, (int)pArgs[4]);
                        else
                        {
                            if (pArgs.Length > 4 && pArgs[4] is bool && (bool)pArgs[4] == true) // 5-й аргумент для загрузки детализированного списка протоколов с учетом объекта отбора
                                vLoadResult = Protocol.Load((int)pArgs[0], (int)pArgs[1], (int)pArgs[3], (bool)pArgs[2], out Dt);
                            else // недетализированный список протоколов с учетом объекта отбора
                                vLoadResult = Protocol.LoadList((int)pArgs[0], (int)pArgs[1], (int)pArgs[3], (bool)pArgs[2], out Dt);
                        }
                    else
                    // [0](List<int>): Типы протокола; [1](int): Очередь; [2](int): Id место отбора; [3](bool): Активность
                    if (pArgs.Length > 3 && pArgs[0] is List<int> && pArgs[1] is int && pArgs[2] is int && pArgs[3] is bool)
                        if (pArgs.Length > 4 && pArgs[4] is int)
                            vLoadResult = Protocol.LoadList((List<int>)pArgs[0], (int)pArgs[1], (int)pArgs[2], (bool)pArgs[3], out Dt, (int)pArgs[4]);
                        else
                            vLoadResult = Protocol.Load((List<int>)pArgs[0], (int)pArgs[1], (int)pArgs[2], (bool)pArgs[3], out Dt);
                    else
                    // [0](List<int>): Типы протокола; [1](int): Очередь; [2](bool): Активность
                    if (pArgs.Length > 2 && pArgs[0] is List<int> && pArgs[1] is int && pArgs[2] is bool)
                        if (pArgs.Length > 3 && pArgs[3] is int)
                            vLoadResult = Protocol.LoadList((List<int>)pArgs[0], (int)pArgs[1], (bool)pArgs[2], out Dt, (int)pArgs[3]);
                        else
                            vLoadResult = Protocol.LoadList((List<int>)pArgs[0], (int)pArgs[1], (bool)pArgs[2], out Dt);
                    else
                    // [0](int): Тип протокола; [1](int): Очередь; [2](bool): Активность;
                    if (pArgs.Length > 2 && pArgs[0] is int && pArgs[1] is int && pArgs[2] is bool)
                        if (pArgs.Length > 4 && pArgs[3] is bool && pArgs[4] is int)
                            vLoadResult = Protocol.LoadList((int)pArgs[0], (int)pArgs[1], (bool)pArgs[2], out Dt, (int)pArgs[4]);
                        else
                            vLoadResult = Protocol.Load((int)pArgs[0], (int)pArgs[1], (bool)pArgs[2], out Dt);
                    else
                    // [0](int): Тип протокола; [1](int): Очередь
                    if (pArgs.Length > 1 && pArgs[0] is int && pArgs[1] is int)
                        if (pArgs.Length > 2 && pArgs[2] is int)
                            vLoadResult = Protocol.LoadList((int)pArgs[0], (int)pArgs[1], out Dt, (int)pArgs[2]);
                        else
                            vLoadResult = Protocol.LoadList((int)pArgs[0], (int)pArgs[1], out Dt);
                    else
    ...

    Метод 500+ вот такого рода строк...

    gcoder, 08 Февраля 2012

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

    +123

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    pOutGrid    =   pTab                                                != null     ? 
                                pTab.SelectedTab                                    != null     ? 
                                pTab.SelectedTab.Tag                                is GridEX   ?
                                (GridEX)pTab.SelectedTab.Tag                                    :
    
                                pTab.SelectedTab.Tag                                is TObject  ?
                                ((TObject)pTab.SelectedTab.Tag).ViewForm            != null     ?
                                ((TObject)pTab.SelectedTab.Tag).ViewForm.GridEX     != null     ?
                                ((TObject)pTab.SelectedTab.Tag).ViewForm.GridEX                 : pGrid : pGrid : pGrid
                                                                                                : pGrid : pGrid;

    gcoder, 08 Февраля 2012

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

    +117

    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
    /// <summary>
    /// Преобразование элемента перечисления в строку
    /// </summary>			
    private String GetEnumElementString(Object e, Type t)
    {
    	string result = string.Empty;
    
    	if (t == typeof(AccessMode))
    	{
    		if ((AccessMode)e == AccessMode.CacheOnly)
    		{
    			result = LocalStrings.AccessMode_CacheOnly_RU;
    		}
    		else if ((AccessMode)e == AccessMode.ServerOnly)
    		{
    			result = LocalStrings.AccessMode_ServerOnly_RU;
    		}
    		else if ((AccessMode)e == AccessMode.ServerAndCache)
    		{
    			result = LocalStrings.AccessMode_ServerAndCache_RU;
    		}
    		else
    		{
    			throw new Exception(string.Format("Отсутствует конвертация перечисления {0} к списку строк.", e));
    		}
    	}
    	else if (t == typeof(MapImageType))
    	{
    		if ((MapImageType)e == MapImageType.Map)
    		{
    			result = LocalStrings.MapImageType_Map_RU;
    		}
    		else if ((MapImageType)e == MapImageType.Satellite)
    		{
    			result = LocalStrings.MapImageType_Sattelite_RU;
    		}
    		else if ((MapImageType)e == MapImageType.Hybrid)
    		{
    			result = LocalStrings.MapImageType_Hybrid_RU;
    		}
    		else
    		{
    			throw new Exception(string.Format("Отсутствует конвертация перечисления {0} к списку строк.", e));
    		}
    	}
    	else
    	{
    		throw new Exception(string.Format("Отсутствует конвертация перечисления {0} к списку строк.", e));
    	}
    
    	return result;
    }

    Конвертация Enum в строку. Аффтар уникален, и это лишь одно из проявлений его уникальности.
    Swith - для трусов, статические тулзы и Extension - для дураков. У нас для этого будут методы классов, между прочим класс, в который входит этот метод - UserControl.
    Кстати, поля LocalStrings - не константы, а статика:

    public static string AccessMode_CacheOnly_RU = "Только кэш"; ....

    ICELedyanoj, 08 Февраля 2012

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

    +126

    1. 1
    if ((e.Row.Cells[0].Text.Trim() != "") && (e.Row.Cells[0].Text.Trim().ToUpper() != "NULL".Trim().ToUpper()))

    Indian style
    Проверка ячейки таблицы на null

    Nataly, 02 Февраля 2012

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