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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    var languageCodes = locales
                    .GroupBy(l => l.Key.Substring(0, 2))
                    .Select(group => group.First())
                    .Select(l => new KeyValuePair<string, string>(l.Key.Substring(0, 2), l.Value))
                    .OrderBy(l => l.Value);

    Прислала боевая подруга из Канады. Да, это продакшен. Но на этот раз код не падавана, а её собственный.

    kerman, 19 Мая 2016

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

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    private void sendCommand(Hi1Command command)
            {
                var aCommand = command as Hi1Command;
                ...
            }

    На случай если Microsoft откажется от строгой типизации С#

    RdlSheetCoder, 18 Мая 2016

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

    +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
    private long m_IsExecuting;
    
    // ...
    
    public virtual void Execute(object parameter)
    {
    	try
    	{
    		if (Interlocked.Read(ref m_IsExecuting) != 0)
    			return;
    		Interlocked.Increment(ref m_IsExecuting);
    		m_Execute(parameter);
    	}
    	finally
    	{
    		Interlocked.Decrement(ref m_IsExecuting);
    	}
    }

    А за то, что ты меня не пустил, я пущу следующего.

    yamamoto, 18 Мая 2016

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    foreach (var r in rezList)
    {
        int newId = rnd.Next();
        rez.Add(new FileItem()
        {
            Id = newId,
            /* ..... */
         });
    }

    Новый способ генерирования ID...

    kontora, 16 Мая 2016

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

    −1

    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
    _colorFlashlightAnimation = compositor.CreateExpressionAnimation(
                      "1.0 - min("
                    + "    1.0,"
                    + "    ("
                    + "        ("
                    + "            ( frame.Offset.x + (frame.Size.x * 0.5) + grid.Offset.x - (windowWidth * 0.5) )"
                    + "          * ( frame.Offset.x + (frame.Size.x * 0.5) + grid.Offset.x - (windowWidth * 0.5) )"
                    + "        ) + ("
                    + "            ( frame.Offset.y + (frame.Size.y * 0.5) + grid.Offset.y - (windowHeight * 0.5) )"
                    + "          * ( frame.Offset.y + (frame.Size.y * 0.5) + grid.Offset.y - (windowHeight * 0.5) )"
                    + "        )"
                    + "    ) / ( radius * radius )"
    + ")");

    Удивитесь, но это Microsoft
    https://github.com/Microsoft/WindowsUIDevLabs/blob/master/Demos/SlideShow/SlideShow/TransitionLibrary.cs

    cherepets, 12 Мая 2016

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

    +5

    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
    class Program {
        static void Main(string[] args) {
            AppInstance.Get().DoMain(IOMain);
        }
        static IO<None> IOMain() {
            return
                from _ in IO.Do(() => Console.WriteLine("What is your name?"))
                from name in IO.Do(() => Console.ReadLine())
                let message = "Hi, " + name + "!"
                from r in IO.Do(() => Console.WriteLine(message))
                select r;
        }
    }

    https://habrahabr.ru/post/282940

    vleschenko, 05 Мая 2016

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

    +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
    using System;
    
    public class Test
    {
    	 private static void Main(string[] args)
            {
                int d = 2147483647;
    
                Console.WriteLine(d);
    
                long g = 2147483647+d;
    
                Console.WriteLine(g);
    
                long k = new MyClass() + new MyClass();
    
                Console.WriteLine(k);
            }
    
            public class MyClass
            {
                public static implicit operator int(MyClass m)
                {
                    return 5;
                }
    
                public static implicit operator long(MyClass m)
                {
                    return 100;
                }
            }
    }

    Типушня

    kegdan, 30 Апреля 2016

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

    +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
    public static long NormalizeIp(this long ip)
            {
                var ipAddress = new IPAddress(Math.Abs(ip)).ToString();
                return ipAddress.IpToLong();
            }
    
    
            static long IpToLong(this string ip)
            {
                double num = 0;
                if (!string.IsNullOrEmpty(ip))
                {
                    var ipBytes = ip.Split('.');
                    for (var i = ipBytes.Length - 1; i >= 0; i--)
                    {
                        num += ((int.Parse(ipBytes[i]) % 256) * Math.Pow(256, (3 - i)));
                    }
                }
    
                return (long)num;
    
            }

    Получаем IP вот таким вот методом - BitConverter.ToInt32(IPAddress.Parse(ip) .GetAddressBytes(), 0)
    Приводим к типу long (неявным методом, т.е. long a = ip_address) и в таком виде сохраняем в базу как bigint (int64)
    Затем берем его из базы и пытаемся провернуть с ним вот такой NormalizeIp
    Печаль (

    bopoh, 30 Апреля 2016

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

    −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
    Немного о пропертях
    
    "Лично мне свойства не нравятся и я был бы рад, если бы в Microsoft решили убрать
    их поддержку из .NET Framework и сопутствующих языков программирования."
    
    "Я считаю, что разработчики используют свойства намного чаще, чем следовало
    бы. Достаточно внимательно изучить список различий между свойствами и поля-
    ми, чтобы понять: есть очень немного ситуаций, в которых определение свойства
    действительно полезно, удобно и не запутывает разработчика. Единственная при-
    влекательная черта свойств — упрощенный синтаксис, все остальное — недостатки,
    в числе которых потеря в производительности и читабельности кода. Если бы я
    участвовал в разработке .NET Framework и компиляторов, я бы вообще отказался от
    свойств, вместо этого я предоставил бы разработчикам полную свободу реализации
    методов GetXxx и SetXxx. Позже создатели компиляторов могли бы предоставить
    особый упрощенный синтаксис вызова этих методов, но только при условии его
    отличия от синтаксиса обращения к полям, чтобы программист четко понимал, что
    выполняется вызов метода!"
    
    Джефри Рихтер

    Срач объявляется открытым

    kegdan, 29 Апреля 2016

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

    +5

    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
    using System;
    
    namespace ConsoleApplication13
    {
        class Program
        {
            private static void Main(string[] args)
            {
                var s = new MyStruct(1);
    
                Console.WriteLine(s);
    
                s.Change(2);
                
                Console.WriteLine(s);
    
                ((IChangable)s).Change(3);
    
                Console.WriteLine(s);
    
                var o = (IChangable) s;
    
                ((MyStruct) o).Change(4);
    
                Console.WriteLine(o);
    
            }
    
            interface IChangable
            {
                void Change(int x);
            }
    
            struct MyStruct:IChangable
            {
                private int _value;
    
                public MyStruct(int x)
                {
                    _value = x;
                }
    
                public void Change(int x)
                {
                    _value = x;
                }
    
                public override string ToString()
                {
                    return "Value is " +_value;
                }
            }
        }
    }

    Угадываем что выведет программа и почему

    kegdan, 28 Апреля 2016

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