На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (495) « Первая ... 35 36 [37] 38 39 ...  494 495  ( Перейти к последнему сообщению )  
> Delphi vs C++ vs C# , ну и Java немножко, где-то ближе к старшему байту номеров страниц
    D_KEY, да, можно, есть WeakReference.
    Но только надо отдельно переменную объявить и использовать в лямбде её. Как в новых плюсах влиять на захват нельзя.
    Он даже типы значений захватывает по ссылке :wall: В свой первый накол на эту хрень фичу попортил кучу нервов :'(
    Сообщение отредактировано: MyNameIsIgor -
      Цитата MyNameIsIgor @
      есть WeakReference.

      Это я знаю :) Проблема как указать лямбде, чтобы она их использовала.

      Цитата
      Но только надо отдельно переменную объявить и использовать в лямбде её. Как в новых плюсах влиять на захват нельзя.

      Жаль.

      Цитата
      Он даже типы значений захватывает по ссылке :wall: В свой первый накол на эту хрень фичу попортил кучу нервов :'(

      Мне попадался какой-то прикол с переменной-счетчиком цикла. Оно?
      Сообщение отредактировано: D_KEY -
        Цитата D_KEY @
        Свойства не имеют никакого отношения к ООП.


        Они имеют самое прямое отношение к инкапсуляции ;)

        Цитата MyNameIsIgor @
        --Ins--, вы так жаждали, так жаждали


        Отлично. Давай D_KEY попросим покритиковать обе :)
          Цитата --Ins-- @
          Они имеют самое прямое отношение к инкапсуляции ;)

          эм... нет.
            Цитата --Ins-- @
            Цитата D_KEY @
            Свойства не имеют никакого отношения к ООП.


            Они имеют самое прямое отношение к инкапсуляции ;)

            Хм... Как я при чтения чужого кода увижу, использует ли он свойства, или напрямую атрибуты меняет?

            Цитата
            Цитата MyNameIsIgor @
            --Ins--, вы так жаждали, так жаждали


            Отлично. Давай D_KEY попросим покритиковать обе :)
            Обе не нужны :D
            На вскидку - у тебя мне не нравится какой-то странный record с case, у MyNameIsIgor - вроде кода больше и задания свойств читается немного хуже, но это мое ИМХО(мне вообще не нравится, как выглядят свойства в шарпе с синтаксической точки зрения).
              Цитата D_KEY @
              Как я при чтения чужого кода увижу, использует ли он свойства, или напрямую атрибуты меняет?


              :D В том то же и дело что НИКАК ;) И ведь это не твое дело. Инкапсуляция в том и заключается, что ты не знаешь особенности внутренней реализации и не станешь на нее полагаться.

              Цитата D_KEY @
              странный record с case


              Это юнион :)
                Цитата D_KEY @
                Проблема как указать лямбде, чтобы она их использовала.

                Ну, только созданием отдельной переменной. С другой стороны, если у тебя shared_ptr<T>, а захватить хочется по слабому указателю, то всё равно же weak_ptr<T> заведёшь :)
                Цитата D_KEY @
                Мне попадался какой-то прикол с переменной-счетчиком цикла. Оно?

                В первый раз - да :) Второй раз было посложнее :)
                Цитата --Ins-- @
                Отлично. Давай D_KEY попросим покритиковать обе

                Куда бежим то? Я задал два вопроса, потому что не до конца понял узелковое письмо делфи.
                  Цитата --Ins-- @
                  Цитата D_KEY @
                  Как я при чтения чужого кода увижу, использует ли он свойства, или напрямую атрибуты меняет?


                  :D В том то же и дело что НИКАК ;) И ведь это не твое дело. Инкапсуляция в том и заключается, что ты не знаешь особенности внутренней реализации и не станешь на нее полагаться.

                  Это касается интерфейса класса. Да и не всегда ты являешься простым клиентом...

                  Цитата
                  Цитата D_KEY @
                  странный record с case


                  Это юнион :)
                  Я понимаю, что это. Мне не нравится, что оно там есть :)
                    Цитата MyNameIsIgor @
                    Я задал два вопроса


                    Прошу прощения :)
                    1) Нет, естественно. В обход сеттера изменить значение свойства нельзя
                    2) Да, это юнион.
                      Цитата D_KEY @
                      очень редко нужно рассматривать объект исключительно как набор изменяемых атрибутов.

                      Вот, кстати, в отсутствии const в шарпе геттры делаю не изменяющими состояния объекта - ну, собственно, как свойству и положено :)
                      Хоть как-то объект описывает, в то время как метод говорит о том, что он что-то делает :) С другой стороны и метод может не менять состояния, а не свойство он просто потому, что входные параметры нужны.

                      Добавлено
                      Цитата --Ins-- @
                      1) Нет, естественно. В обход сеттера изменить значение свойства нельзя

                      Какого сеттера? Мы отдаём точку (Point) и пользователь хочет изменить у неё одну из координат. Мне такое поведение кажется нелогичным... Хотя у меня так же...
                      Сообщение отредактировано: MyNameIsIgor -
                        Цитата --Ins-- @
                        :D В том то же и дело что НИКАК ;) И ведь это не твое дело. Инкапсуляция в том и заключается, что ты не знаешь особенности внутренней реализации и не станешь на нее полагаться.

                        отчего же никак? делфи вполне неплохо определяет в списке дополнения кода, к чему мы пытаемся обратиться
                          Цитата D_KEY @
                          Мне не нравится, что оно там есть


                          А это нравится больше?

                          Цитата
                          X = coords[i * 2], Y = coords[i * 2 + 1]?


                          Ну давая я уберу юнион, сделаю так же - массив из 4-х циферок :D Тогда понравится? Мне, если честно, нет.
                            Цитата MyNameIsIgor @
                            Цитата D_KEY @
                            Проблема как указать лямбде, чтобы она их использовала.

                            Ну, только созданием отдельной переменной. С другой стороны, если у тебя shared_ptr<T>, а захватить хочется по слабому указателю, то всё равно же weak_ptr<T> заведёшь :)

                            Это да. Было бы неплохо, если бы можно было как-то указывать захватываемый объект(например, конструировать из захватываемого объекта другой), хотя тут уже можно и свой функтор заводить, а не лямбду писать.
                            А то уж слишком монстрообразно выглядит:
                            ExpandedWrap disabled
                              [weak_ptr<T> w(shared_from_this())](int x) { ... }

                            С другой стороны, более обобщенно.
                            А может меня уже плющит на работе...

                            Цитата
                            Цитата D_KEY @
                            Мне попадался какой-то прикол с переменной-счетчиком цикла. Оно?

                            В первый раз - да :) Второй раз было посложнее :)

                            А можешь в общих чертах рассказать?
                              Цитата --Ins-- @
                              Ну давая я уберу юнион, сделаю так же - массив из 4-х циферок Тогда понравится? Мне, если честно, нет.

                              Я то как раз не стал юзать подобный хак... Мне это тоже не нравится...
                                Цитата MyNameIsIgor @
                                Какого сеттера? Мы отдаём точку (Point) и пользователь хочет изменить у неё одну из координат. Мне такое поведение кажется нелогичным... Хотя у меня так же...


                                Нет, смотри. Points[0] - это свойство. Ты же хочешь изменить его значение, неважно что частично. Так вот, ты это хочешь сделать в обход сеттера. А если в сеттера дергается что-то важное? Например OnChange или что-то в этом роде. Что же тогда будет? Это только кажется логичным, на самом деле что нельзя - это правильно. Свойство при получении не отдается пользователю на растерзание. Фишка свойств как раз в том, чтобы доступ к данным ОГРАНИЧИТЬ, запретив установку и получение в обход акцессоров

                                Добавлено
                                Цитата MyNameIsIgor @
                                Я то как раз не стал юзать подобный хак... Мне это тоже не нравится...


                                Ну значит дело вкуса. Мне как раз юнион больше по душе. У меня фобии на их почве нет, вполне законное средство.
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 35 36 [37] 38 39 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.1304 ]   [ 14 queries used ]   [ Generated: 29.07.26, 03:42 GMT ]