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

    +137

    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
    public List<int> parseInt(string input)
    {
      string res = "";
      int i = 0;
      while (input[i] != ' ')
      {
        res = res + input[i];
        //System.Console.WriteLine(res + " = res[" + i + "]");
        i++;
      }
      i = res.Length - 4;
      List<int> num = new List<int>();
      for (int j = 0; i > -4; i = i - 4, j++)
      {
        try
        {
          num.Add(int.Parse(res.Substring(i, 4)));
        }
        catch (Exception e1)
        {
          try
          {
            num.Add(int.Parse(res.Substring(i + 1, 3)));
          }
          catch (Exception e2)
          {
            try
            {
              num.Add(int.Parse(res.Substring(i + 2, 2)));
            }
            catch (Exception e3)
            {
              num.Add(int.Parse(res.Substring(i + 3, 1)));
            }
          }
        }
      //System.Console.WriteLine(num[j]+" = num["+j+"]");
      }
      return num;
    }

    Опять студенты.
    Задание: реализовать длинную арифметику.

    один из примеров чтения длинного числа

    graph_di5, 16 Октября 2012

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

    +139

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    private static string f(bool? arg)
    {
        switch (arg)
        {
            case true: return "true";
            case false: return "false";
            case null: return "null";
            default: return "???";
        }
    }

    В продолжение историй про bool-shit. Если строку 8 убрать, то Visual Studio пишет:
    "Error 3 'f(bool?)': not all code paths return a value"
    Что должно быть в аргументе, чтобы попасть в ветку default?

    absolut, 11 Октября 2012

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

    +139

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    switch (!_data.Provider)
    {
            case true: _currentState = states.DT2F; break;
            case false: _currentState = states.DT2P; break;
    }

    Проверка двух условий

    Prafesor, 10 Октября 2012

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

    +138

    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
    private static T GetElementValue<T>(this XmlElement elm, string elementName, T defaultValue = default(T), bool throwIfError = false, bool throwIfMissing = false)
    			where T : IConvertible
    {
    	string val = GetElementValue(elm, elementName);
    	if (string.IsNullOrEmpty(val) == false)
    	{
    		if (typeof(T) == typeof(string))
    		{
    			return (T)(object)val;
    		}
    
    		if (typeof(T) == typeof(bool))
    		{
    			return (T)(object)(val == "1");
    		}
    
    		try
    		{
    			if (typeof(T) == typeof(DateTime))
    			{
    				return (T)(object)DateTime.Parse(val, System.Globalization.CultureInfo.InvariantCulture); ;
    			}
    
    
    			return (T)Convert.ChangeType(val, typeof(T), CultureInfo.InvariantCulture);
    		}
    		catch (Exception exc)
    		{
    			if (throwIfError)
    				throw exc;
    		}
    	}
    	if (throwIfMissing)
    		throw new ArgumentNullException("The parameter '" + elementName + "' is missing");
    
    	return defaultValue;
    }

    Используем Generics по-фэншую!

    Eugene, 05 Октября 2012

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

    +104

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    283: public static IList<Service> MultithreadHostCheckImplementation(string userName, string userPassword, string clientName, string serviceName, int iImplType, string samsungAccessToken,
    			bool checkSamsungAccountInCustomProps,string clientSoftware,string decryptedInstallKey,
    			out Guid userRefId, out string subscriptionId, out bool isIPhoneUser, out string serviceHostHeader)
             {
                 //....
    783: }

    Русский код. Ровно 500 строк отборного!

    Eugene, 05 Октября 2012

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

    +137

    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
    private string ExtractNodeValue(string text, string nodeName)
    {
        string result = string.Empty;
    
        int slength = ("<" + nodeName + ">").Length;
        int sindex = text.IndexOf("<" + nodeName + ">");
        int eindex = text.IndexOf("</" + nodeName + ">");
    
        if (sindex > 0 && eindex > 0)
            result = text.Substring(sindex + slength, eindex - sindex - slength);
    
        return result;
    }
    
    
    
    string request = string.Format("http://maps.google.com/maps/geo?ll={0},{1}&hl=en&output=xml&key=abcdefg", location.latitude, location.longitude);
    Logger.Log(request);
    HttpWebRequest httprequest = (HttpWebRequest)WebRequest.Create(request);
    WebResponse responce = httprequest.GetResponse();
    Stream str = responce.GetResponseStream();
    XmlTextReader reader = new XmlTextReader(str);
    reader.XmlResolver = null;
    XmlDocument doc = new XmlDocument();
    doc.Load(reader);
    str.Close();
    reader.Close();
    
    XmlNodeList listResponse = doc.ChildNodes[1].ChildNodes[0].ChildNodes;
    foreach (XmlNode nodePlace in listResponse)
    {
        if (nodePlace.Name == "Placemark")
        {
            string text = nodePlace.InnerXml;
    
            string Country = ExtractNodeValue(text, "CountryName");
            if ((this.DataContext.Countries.Count(x => x.Name == location.countryName) == 0 || string.IsNullOrWhiteSpace(location.countryName)) &&
                !string.IsNullOrWhiteSpace(Country))
            {
                location.countryName = Country;
            }
    
            string Region = ExtractNodeValue(text, "AdministrativeAreaName");
            if (this.DataContext.States.Count(x => x.AlphaCode == location.region || x.Name == location.region) == 0 &&
                !string.IsNullOrWhiteSpace(Region))
            {
                location.region = Region;
            }
    
            string City = ExtractNodeValue(text, "LocalityName");
            if (this.DataContext.Cities.Count(x => x.Name == location.city) == 0 &&
                !string.IsNullOrWhiteSpace(City))
            {
                location.city = City;
            }
            break;
        }
    }

    отличный парсиг xml.

    mangyst, 04 Октября 2012

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

    +102

    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
    ...
    while (GetRateStumpNew(_rateStumps, ddtdDateBegin, dDateEnd, out sstrRateStumpsNew,
                                               out ddtDateEditrateStumps, out ddouRateStumpsNew))
    {
        //если хоть раз сюда зашло, то ставим флагец
        isStumpForFirst = true;
    
        //записываем дату
        ddtdDateBegin = ddtDateEditrateStumps;
    
        //если один раз зашли, то дальше можно не проверять
        goto l1; //временно
    }
    l1:
    ...

    Полный контроль над последовательностью выполнения кода

    CrazyMORF, 01 Октября 2012

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

    +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
    15. 15
    16. 16
    17. 17
    18. 18
    public string Search(string title)
     {
     List<string> str1 = new List<string>();
     string count = cmainlibrary.Count.ToString();
     int counter = Convert.ToInt32(count);
     int i = 0;
    
     for ( i = 0; i < counter; i++)
     {
     string title_library = cmainlibrary[i].Title.ToString();
     if (title.ToUpper().Contains(title_library. ToUpper()))
     {
     str1.Add(cmainlibrary[i].Title);
    
     }
     }
     return str1[i];
     }

    Хотя я это выкладывал в коментариях к говнокоду #11830, решил повеселить народ отдельным постом.
    Это реализация библиотеки книг. Метод должен искать список книг которые соответствуют title.

    sater, 25 Сентября 2012

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

    +127

    1. 1
    2. 2
    3. 3
    4. 4
    while (true) {
        Console.WriteLine(answer);
        answer = process.StandardOutput.ReadLine();
    }

    Человеку нужно просто считывать команды (строки) из консоли. Делает через жопу.

    Fai, 24 Сентября 2012

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

    +138

    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
    public void Delete(CommonType type)
            { 
                label1:
                Console.Write("Enter the title of the book: ");
                string title = Console.ReadLine();
                if (title == type.Title)
                {
                    cmainlibrary.Remove(type);
                    Console.Write("Success");
                    Console.Read();
                    goto label1;
                }
                    
                else 
                {
    
                    goto label1;
                  
                }
            
            }

    sater, 24 Сентября 2012

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