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

    +114

    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
    public new int? OperatorCode
            {
                get
                {
                    int result = 0;
                    if (!String.IsNullOrEmpty(Request.QueryString["OperatorCode"]) && Int32.TryParse(Request.QueryString["OperatorCode"].ToString(), out result) == true)
                        OPERATOR_CODE = result;
                    return OPERATOR_CODE;
                }
                set
                {
                    if (value.HasValue)
                        OPERATOR_CODE = value.Value;
                    else
                        OPERATOR_CODE = null;
                }
            }

    Вот такое свойство мне встретилось

    Запостил: Othello, 03 Января 2011

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

    • OPERATOR_CODE = result;
      свойство с пост эффектами, да ещё и глюки может вызывать в многопоточных приложениях
      Ответить
    • new int?
      это тоже не от хорошего проектирования
      Ответить
    • показать все, что скрытовот именно поэтому в Java не были введены свойства, это хорошая иллюстрация!
      Ответить
    • показать все, что скрытоСвойства - зло!
      Ответить
      • что злого? не используй через задницу (в "практологическом стиле") и проблем не будет
        Ответить
        • Я уже где-то писал, что не люблю сущности, притворяющиеся не тем, чем есть.
          Почему я не могу написать inc(Form1.Width), хотя, казалось бы?
          Ответить
          • >inc(Form1.Width)
            это проблема дельфей, а не свойств
            в С# этой проблемы нет
            Ответить
            • показать все, что скрытоВ сишарпе можно передавать проперти, как переменные по ссылке?
              PW := @Form1.Width;
              никакой сишарп не поможет сделать так.
              Я предлагал где-то все обращения к свойствам задавать с пустыми скобочками, тогда будет честнее - будет видно, что на самом деле в них сокрыт вызов метода.
              Ответить
              • в С# всё после боксинга передаётся по ссылкам
                Ответить
              • кто-то мешает в Object Pascal объявлять перегруженные помеси геттера с сеттером?
                Ответить
                • К сожалению, не мешает.
                  Ответить
                  • методы тоже не нравятся? ;-)
                    Ответить
                    • Те, которые можно вызывать без () - тоже.
                      Почему Вирт допустил такой косяк?
                      Ответить
            • Как и говорил:
              >>inc(Form1.Width)
              >это проблема дельфей, а не свойств
              >в С# этой проблемы нет
              Автобоксинг с этой проблемой в C# справляется успешно:
              class Program
                  {
                      static int _var;
                      static int Var
                      {
                          get { return _var; }
                          set { _var = value; }
                      }
              
                      static void Main(string[] args)
                      {
                          Var = 1;
                          Console.WriteLine(Var);
                          Console.WriteLine(++Var);
                          Console.WriteLine(Var);
                          Console.ReadLine();
                      }
                  }
              Результат: программа успешно скомпилировалась в C# и вывела на экран:
              1
              2
              2
              Если, до сих пор ещё, не законченый Дельфи это скомпилировать не в состоянии, то извиняйте... Выкинте его куда подальше.
              Ответить
              • > Console.WriteLine(++Var);

                Сишарпненько...
                Это ещё хуже - сложная сущность косит под переменную так, что хрен отличишь.
                Ответить
                • То Вам не нравится что это не работает в дельфи: inc(Form1.Width), а в C# это работает и тоже не нравится?
                  Что же Вам тогда нравится?
                  Ответить
                  • Мне вообще свойства не нравятся.
                    Ответить
                    • Скажите, что Вам нравится лишь дельфи и Вас не переубедишь. Зачем спорить? :)
                      Хотя ладно. Всё равно делать в данный момент нечего, продолжаем. :)
                      Ответить
                      • В дельфе тоже есть свойства, и это в ней мне не нравится.
                        Ответить
                      • ну не нравится ООП человеку, шо пристали-та :-)
                        Ответить
                        • Дельфийское ООП мне не нравится, потому что всё равно руками надо объекты удалять, никакого автодеструктора. Поэтому я решил, что нахуй такое ООП и пишу структурами. А структуры у меня просто загляденье - с дикими разветвлениями вариантных полей и указателей на процедуры.
                          Ответить
                          • >структуры у меня просто загляденье - с дикими разветвлениями вариантных полей и указателей на процедуры.

                            Можете на говнокод запостить несколько примеров? Очень интересно. :)
                            Ответить
                            • Ну, например:

                              http://govnokod.ru/4249
                              Ответить
                              • Для полноты ООП здесь не хватает наследования.
                                И, естественно, неудобно.
                                Ответить
                                • Ну для меня так удобнее - всё прозрачнее.
                                  Наследование тут как раз есть - класс с виртуальными методами и наследники с реализациями методов.
                                  Ответить
                    • private UserWrapper _ownUser;
                              /// <summary>
                              /// Пользователя обладающий этим каталогом
                              /// </summary>
                              public UserWrapper OwnUser
                              {
                                  get
                                  {
                                      if (_ownUser == null)
                                      {
                                          string ownID = Convert.ToString(_hashtable[Common.Catalog.OWN_ID]);
                                          _ownUser = UserWrapper.GetUser(ownID, Common.User.ID);                    
                                      }
                                      
                                      return _ownUser;             
                                  }
                              }


                      Метод UserWrapper.GetUser() обращается к базе данных. Нам каждый раз не нужно обращаться к БД при новом создании экземпляра, а только тогда когда это свойство вызовет разработчик
                      Ответить
                      • Так-же код не даст тебе изменить это свойство, что показывает что разработчик данного свойства поставил условие что его НЕЛЬЗЯ изменить!
                        Ответить
                      • Что Вы этим хотели сказать?
                        Ответить
                • >сложная сущность косит под переменную
                  В С++ переменная вообще может быть сложной сущностью (не проще геттера/сеттера) и даже иметь постэффекты.

                  А это обычная переменная и не под кого не маскируется.
                  Ответить
                  • Ну в С++ это всё как-то сделано, что всё равно понятно, что к чему.
                    Капча 4444
                    Ответить
                    • >С++ это всё как-то сделано, что всё равно понятно, что к чему

                      Наоборот.
                      В С++ столько тонкостей и особенностей стандарта, что очень часто появляются совершенно не очевидные моменты при программировании, что ему лишь в минус. Это способствует стрельбе по ногам.
                      Ответить
    • показать все, что скрытоWEBKILL OTAKE111
      Ответить
      • показать все, что скрытоАХАХХАХАХАХАХАХАХАХАААААААААА! Я ВЕЗДЕСУЩЬ И ВСЕМОГУЩ!
        Ответить
        • [pterosnya mode on]
          И вездесрущ, как я посмотрю.
          [pterosnya mode off]
          Ответить
        • Наполеон?
          Ваша палата №6 слева по коридору.
          Ответить
          • остерегайтесь Кутузова, он из вас Нельсона сделает, если ему про Альпы напомнить
            Ответить
            • Я, смотрю, Вас тоже какая-то великая личность минусует (как и меня), проявляющая опасные симптомы заболевания *** (это не обязательно батхерт, это могут быть и другие психологические болезни)?

              Товарищ, зачем скрыто из под тяжка минуСовать? Может Вы хотите поговорить об этом?

              Стесняетесь сказать всё наболевшее мне "в лицо"?

              Просто выскжите всё, что обо мне думаете. Я не буду против. Говорите, не стесняйтесь. Интернет не краснеет. Вам станет легче. Может я даже исправлюсь и извинюсь, если в чём-то виноват. :)
              Мы с вами люди и друг друга поймём. Обещаю не обижаться. :)

              Если, нехотите, то можете продолжать минусовать. Я не буду против. Если был бы против, то давно бы завёл себе "бота-плюсатора".
              А минус я никогда принципиально не трогаю. :-)
              Ответить
              • > из под тяжка

                до хуя пиздите, вот и не клюёт
                Ответить
              • думаю, меня есть за что минусовать. Хотя лично я не переживаю по этому поводу
                Ответить
                • Я тоже не переживаю. Мне просто интересно. Природное любопытство. :)
                  Ответить
                  • я не $10, что бы всем нравиться.
                    Я тут активно отписываюсь, и мог некоторым личностям сильно не понравиться. Кому? Нет, не интересно, кому. У людей, чье мнение мне важно, я сам спрошу = )
                    Ответить
                    • Понятно. Меня тоже есть за что минусовать и даже очень много за что... :-[
                      Ответить

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