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

    +142

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    string.Format(
        "{0}{3}{1}{4}{2}",
        MrzRfid.Split(';')[0],
        MrzRfid.Split(';')[1],
        MrzRfid.Split(';')[2],
        Environment.NewLine,
        Environment.NewLine);

    Есть строка, которая состоит из 3х логических частей, разделеных символом ';'.
    Этот код разбивает эти 3 части по строкам

    Запостил: NeoN, 05 Ноября 2014

    Комментарии (41) RSS

    • а потом склеивает обратно и добавляет два перевода строки

      дети сплит прошли, а джоин -- нет
      Ответить
      • Забыл вставить сюда кусок кода, в котром из 3х полей это склеивается с ';'... Сначала склеили, потом разделили. При том, что строка в виде ".. ;.. ;.." нигде больше не используется!
        c.MrzRfid = string.Format(
        "{0};{1};{2}",
        doc.Field((int)PR_DOCFIELD.PR_DF_MRZ1),
        doc.Field((int)PR_DOCFIELD.PR_DF_MRZ2),
        doc.Field((int)PR_DOCFIELD.PR_DF_MRZ3));
        }
        Ответить
      • может таки просто реплейс юзать?
        Ответить
    • {3} и {4} - шикарно)
      Ответить
    • Ничего вы не понимаете. Тут главное это кроссплатформенность
      Environment.NewLine
      Ответить
      • http://www.youtube.com/watch?v=LLk9_EH6Pfo
        Ответить
      • Да-да, ведь .NET так часто работает за пределами винды:)

        Кстати, а mono ешче жив?
        Ответить
        • xamarin
          Ответить
          • И что, правда кто-то пользуется?

            Чтобы это реально работало, MS должно спонсировать подобные штуки. Но увы.

            За созданием .NET у MS стояло вовсе не желание создать еще один классный платформ с красивым языком, а банальное желание утянуть ынтерпрайз с жабы/линух на clr/винду, ну за одно упростить нубам разработку под винду. Тоесть главная цель была это сохранить операционку.

            А всякие плюшки вроде ECMA-334 нужны чтоб мракетологи вешали клиентам на уши лапшу про "отсутствие вендор лок".
            Ответить
            • Ну, ксамарином и юнити много кто пользуется.
              Ксамарин сам себя спонсирует, он не халявный.

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

                А много -- это кто? Ну вот кто например?

                И я совершенно не против .NET, кстати говоря.
                Мне нравится C#, во времена двойки я сделал на ASP.NET несколько проектов, а давеча вон с WPF игрался:)
                Ответить
                • На юнити - дохрена игрушек. Например мой любимый Kerbal Space Program, который отлично идет под линухой.
                  Ответить
                  • Ну ладно, принято, буду знать.

                    Хотя меня терзают сомнения на тему того насколько там всё совместимо с настоящим .NET и C#, и нет-ли подводных граблей
                    Ответить
                    • Язык вроде бы полностью реализован. С ним проблем то особых и не было.

                      Из основных проблем у моно были унылый GC и отсутствие winforms/wpf/прочих_виндовзонли_либ_от_мс. Но тому же юнити они нахер не сдались.
                      Ответить
                      • говорят, что моно ну очень тормозит
                        Ответить
                        • Ну не так чтоб уж очень (всё-таки быстрее динамических языков). Но ближайшим конкурентам стабильно сливает.
                          Ответить
                      • Да ну ладно?
                        И вот прямо C# 5.0 поддерживает? И dynamic? И async? :)

                        ---
                        Собссно: http://www.mono-project.com/docs/about-mono/compatibility/
                        Вижу что поддерживает. Но немного с костылям.

                        Я бы немного волновался юзать такое в продакшене. Впрочем, если у них есть платный суппорт то наверное не так страшно
                        Ответить
                        • The Mono C# compiler is considered feature complete for C# 1.0, C# 2.0, C# 3.0, C# 4.0 and C# 5.0

                          A preview of C# 6.0 is distributed with Mono 3.8 or when building Mono from our trunk source code release

                          Пруф: http://www.mono-project.com/docs/about-mono/languages/csharp/
                          Ответить
                          • Ну вот я там наверху ссылку привел что CodeContracts например не поддерживается)

                            В общем юзать можно, но с ограничениями. Жаба (при всех её минусах) от таких проблем не страдает.
                            Ответить
                            • Жаве те фичи, которые уже есть в моно, даже и не снились.
                              Ответить
                              • Речь очевидно идет о конструкциях C# и возможностях CLR, которые и правда не снились Java и JVM.

                                Это действительно так, увы.

                                Впрочем, восьмая джава стала уже чуть-чуть по-лучше, но народ-то до сих пор пишет на шестой, а там даже лямбд нету! а!!
                                Ответить
                                • > но народ-то до сих пор пишет на шестой
                                  фу, что за ретроградство
                                  боязнь острых ощущений?
                                  Ответить
                                  • Разные есть причины.

                                    В кровавом энтерпрайзе есть полиси вроде "работает -- не трогай".

                                    У нас были проблемы с свингом на седьмой джаве, правда на восьмой их вроде бы решили.
                                    -----
                                    И вот Вы представляете себе как в сравнении с C# 5.0 выглядит Java 6?)))
                                    Ответить
                                    • конечно представляю
                                      java 6 работает годами, имеет предсказуемые нормы производительности, дружит со всеми ОС, приносит золотые яйца
                                      Ответить
                                      • Вот именно)

                                        В этом смысле она похожа на кобол: на нём тоже кое-что работает с прошлого века, и никто это не трогает/.
                                        Ответить
                                • > а там даже лямбд нету
                                  Ты так говоришь, как-будто они есть в седьмой.
                                  Ответить
                                  • В восьмой есть же)

                                    Некоторые люди уходят на скалу/котлин/etc именно потому что без лямбд им плохо
                                    Ответить
                                • Там xml парсер не имплементирует iterable для подузлов, ибо нинужно, кококо.
                                  Ответить
                  • Wasteland 2 таки на unity
                    Ответить
                • > Если разработчики языка пальцем о палец не ударяют чтоб помочь его реализаторам
                  много кого оракл спонсирует для поддержки своей жабьей экосистемы?
                  может, есть кросс-платформенный мобильный фреймворк на жабке типа ксамарина?

                  собственно, можно поговорить про разработчиков любого языка из списка в верхнем меню этого сайта :)
                  Ответить
                  • > оракл спонсирует
                    Гуглу вообще пиздюлей надавали за порт под андроид... Какое уж тут спонсирование.
                    Ответить
                    • Не за порт а за реюзание стандартной библиотеки без разрешения:)

                      Еще раз: JDK (компилятор + JRE) есть официальный под кучу ОС плюс есть помощь опенJDKшникам.

                      Когда я хочу свою жабу запустить на винде или линухе я беру жабу с сайта оракла (ну или через систему управления пакетами, но она оттуда же придет) а не от какой-то левой компании:)

                      Это НЕ значит что юнити плох) Но это значит что завтра MS может выдумать что-то такое, что ребята из моно задолбаются реализоввывать (у MS же нет аналогов JCP, PEP итд), и какое-то время будет код, который работает под .NET но не работает под MONO:)
                      Ответить
                      • Дело в том, что большая часть windows-only либ и так не реализована. И никогда не будет. Так что моновцам, в принципе, на это насрать.

                        Это же не 100% порт экосистемы .net, на котором взлетит любая .net прога. Это просто другая реализация языка и рантайма со своими либами (gtk# и прочие). Причем моно есть и под винду, и эти кроссплатформенные либы там работают.
                        Ответить
                        • Ну если так смотреть то ок. Тоесть говорить надо не о писании под .NET а о писании под моно (коее, к счастью, есть под винду).

                          Правда меня всё равно смушает что процессом разработки и стандартизации CLR и C# управляет MS, а не консорциум с моновцами в составе.

                          Или я опять чего-то не понимаю?
                          Ответить
                          • Ну я именно так понимаю судьбу моно. Как там в реале - х.з., я его не юзал. А шарп первый и последний раз полапал в районе 2.0. Ну и совсем немножко ASP.NET пару лет назад, чтобы небольшой отчет запилить на виндовом сервере.
                            Ответить
                  • Вообще-то еще во времена SUN были реализации жабы под linux, винду и MAC OS сановые. Официальные. Кроме того они спонсировали OpenJDK. Лесом тогда шла только фря.
                    Ответить
        • Живее всех живых
          Ответить

    Добавить комментарий