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

    Всего: 5

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

    +105.2

    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
    public static bool EqualHash(string x, string y)
            {
                if ((x == null || y == null) && x != y)
                    return false;
    
                if (x == null && x == y)
                    return true;
                
                if (x.Length != y.Length)
                    return false;
                
                for (int i=0; i<x.Length; i++)
                {
                    if (x[i] == y[i])
                        return false;
                }
    
                return true;
            }
    
    //чуть ниже в том же классе
    
            public static bool SimpleEqualHash(string x, string y)
            {
                return (x == y);
            }

    sven47, 04 Января 2010

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

    +128.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
    public static T Parse<T>(string txt)
            {
                if (string.IsNullOrEmpty(txt))
                    return default(T);
    
                txt = txt.Trim();
    
                Type[] typeArray = new Type[] {
                    typeof(string),
                    typeof(T).MakeByRefType()};
    
                MethodInfo mi = typeof(T).GetMethod("TryParse", typeArray);
    
                T value = default(T);
    
                if (mi != null)
                {
                    object[] prms = new object[]{
                    txt,
                    value};
    
                    if ((bool)mi.Invoke(null, prms) && prms[1] != null)
                        value = (T)prms[1];
                }
    
                return value;
            }

    Не скажу что это такой уж говнокод, но что то говнистое в нем есть =)

    sven47, 26 Ноября 2009

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

    +135.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
    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
    public class Singleton<T> where T : class
        {
            private static T _Instance = null;
            protected static readonly object locker = new object();
    
            public static T Instance
            {
                get
                {
                    if (_Instance == null)
                    {
                        lock (locker)
                        {
                            if (_Instance == null)
                            {
                                ConstructorInfo[] info = typeof(T).GetConstructors(BindingFlags.Instance | BindingFlags.NonPublic);
                                if (info.Length > 0)
                                    _Instance = (T)info[0].Invoke(null);
                            }
                        }
                    }
                    return _Instance;
                }
            }
    
            protected Singleton() { }
    
            static Singleton() { }
    
        }

    Вот такой вот универсальный сиглтон нашел в проекте

    sven47, 26 Ноября 2009

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

    +131.2

    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
    public static DataTable DeserilazeDataTable(string schema, string data)
            {
                DataTable tbl = new DataTable();
                if (!string.IsNullOrEmpty(schema))
                    using (Stream stream = new MemoryStream())
                    {
                        byte[] bufer = GetBytes(schema);
    
                        stream.Write(bufer, 0, bufer.Length);
                        stream.Position = 0;
                        tbl.ReadXmlSchema(stream);
                    }
    
                if (!string.IsNullOrEmpty(data))
                    using (Stream stream = new MemoryStream())
                    {
                        byte[] bufer = GetBytes(data);
    
                        stream.Write(bufer, 0, bufer.Length);
                        stream.Position = 0;
                        tbl.ReadXml(stream);
                    }
    
                return tbl;
            }
    
     public static byte[] GetBytes(string str)
            {
                if (string.IsNullOrEmpty(str))
                    return new byte[0];
    
                char[] ch = str.ToCharArray();
                byte[] bufer = new byte[ch.Length];
                for (int i = 0; i < ch.Length; i++)
                    bufer[i] = (byte)ch[i];
    
                return bufer;
            }
    //также имеются методы для сериализации, работающие также
    public static string SerilazeDataTable(DataTable table)
    public static string SerilazeDataTableShame(DataTable table)
    public static string GetString(byte[] bufer)

    Вот такой десериализатор таблицы в Xml нашел в проэкте.

    sven47, 11 Ноября 2009

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

    +135.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
    StiReport report = // создание отчета  StimulSoft Reporter          
     // . . . . .
     
    // . . . . . 
                string tempfilename = System.Guid.NewGuid().ToString() + ".tmp";
                report.ExportDocument(StiExportFormat.Word2007, tempfilename);    //позволяет конвертировать отчет только в поток 
    
                FileStream stream = new FileStream(tempfilename, FileMode.Open);
                byte[] reportFile = new byte[stream.Length];
                stream.Read(reportFile, 0, (int)stream.Length);
                stream.Close();
                File.Delete(tempfilename);
    
                if (reportFile.Length > 0)
                    if (MessageBox.Show("Зберегти друковану форму?", "Запит", MessageBoxButtons.OKCancel) == DialogResult.OK)
                         WriteToDB(reportFile, "Документ.docx");

    sven47, 31 Октября 2009

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