На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (245) « Первая ... 121 122 [123] 124 125 ...  244 245  ( Перейти к последнему сообщению )  
> Есть ли будущее у DELPHI?
    А в Дельфи что для этого есть? Класс-обертка может дать возможность прозрачно задавать значение элементам массива из энамов, как и в Дельфях. Если какой-то энам был удален, то как и в Дельфях увидим, что присваиваются значения несуществующему энаму. Но если энам был добавлен, то мы как и в Дельфи ничего не увидим, нет?
      Цитата [S]mike @
      А в Дельфи что для этого есть?

      э-э-э. компилятор.

      TEnum = (en1, en2);
      TEnumArr: array[TEnum] of Integer = (1,2);

      добавили новый элемент в энум

      type TEnum = (en1, en2, en3);
      const TEnumArr: array[TEnum] of Integer = (1,2); // тут компилятор сказал, что кол-во элементов в массиве не соответсвует кол-ву элементов в энуме.
      Сообщение отредактировано: jack128 -
        Цитата jack128 @
        type TEnum = (en1, en2, en3);
        const TEnumArr: array[TEnum] of Integer = (1,2); // тут компилятор сказал, что кол-во элементов в массиве не соответсвует кол-ву элементов в энуме.

        LOL, такой изврат ни в Джаве, ни в дотнете не нужен. Это потому что в этих языках энамы являются расширяемыми классами, и не нужно делать соответствие энамов конкретным значениям через массивы.

        Java:
        ExpandedWrap disabled
          public enum MyEnum {
           
              FIRST (1), SECOND (2), THIRD (3);
           
              public final int number;
           
              private MyEnum(int number) {
                  this.number = number;
              }
           
          }



        Имеем: FIRST.number, SECOND.number... Что гораздо удобнее и нагляднее.
        Сообщение отредактировано: [S]mike -
          Цитата [S]mike @
          LOL, такой изврат ни в Джаве, ни в дотнете не нужен. Это потому что в этих языках энамы являются расширяемыми классами, и не нужно делать соответствие энамов конкретным значениям через массивы.

          во первых в .NET'е енумы - это НЕ классы.
          Во вторых - нужен. Потому что мне _не_ нужно, чтобы сборка(или как оно там в джаве называется) в которой находится энум знала обо всех данных, ассоциированных с этим энумом. Иначе получится некий God object, со всеми вытекающими..
            Цитата jack128 @
            во первых в .NET'е енумы - это НЕ классы.

            судя по MSDN System.Enum - это класс, правда он наследуется от System.ValueType
            Сообщение отредактировано: kanes -
              Цитата --Ins-- @
              Можно. Линейная интерполяция. Для одномерного случая:
              y' = y1 + (x' - x1)*(y2 - y1)
              Для двумерного - прикинь с листиком и карандашом, не намного сложнее. Интерполируем сначала по одной оси, потом - по другой

              А можно код?
                Цитата korvin @
                А можно код?


                А сам не напишешь?
                  Цитата --Ins-- @
                  А сам не напишешь?

                  нет.
                    Цитата jack128 @
                    Во вторых - нужен. Потому что мне _не_ нужно, чтобы сборка(или как оно там в джаве называется) в которой находится энум знала обо всех данных, ассоциированных с этим энумом. Иначе получится некий God object, со всеми вытекающими..

                    Ну так в Map закидать с проверкой, является ли количество элементов в мапе равным количеству самих энамов. Надо просто мыслить шире. В Дельфи - это топорный примитивный низкоуровневый механизм (энамы и их массивы, сеты имею ввиду), имеющий кучу недостатков. Например, как мне посчитать количество элементов в сете? :whistle:
                    Сообщение отредактировано: [S]mike -
                      Цитата [S]mike @
                      Например, как мне посчитать количество элементов в сете?

                      ExpandedWrap disabled
                          Count:=0;
                          for Item in MySet do
                            Inc(Count);


                      А зачем это может потребоваться?
                        [S]mike
                        откладывать проверки на ран тайм - это не вариант.
                        я прекрасно понимаю,что у дельфиских энумов вагон вариантов. Но возможность создать массив с энумом-индексатором - это приемущество.
                          Цитата jack128 @
                          Но возможность создать массив с энумом-индексатором - это приемущество.

                          А чем твой массив, кстати, отличается от "God object"? Тоже все данные в одном месте. Почему их нельзя задавать в конструкторе enum-типа - каждому энаму отдельно?

                          А что будет, если энамы поменять местами? Компилятор тоже выдаст ошибку? :crazy: Еще один аргумент за то, что данные должны храниться вместе с энамами. Забыть задать какое-то значение в этом случае невозможно, так как не будет соответствующего конструктора. Где в дельфи такая гибкость? :jokingly:

                          Добавлено
                          Цитата Shaggy @
                          А зачем это может потребоваться?

                          Ну как зачем? Если серьезно использовать энамы - еще как может понадобиться. В Джаве для этого есть целый класс EnumSet - полноценная дженерик коллекция.

                          Например, есть у тебя список цветов автомобилей в виде такого множества. Нужно отобразить, сколько всего этих цветов доступно для конкретного автомобиля.

                          Тот метод что ты привел - топорный и кустарный. Все равно что передвигать мышь попиксельно, чтобы задать ей позицию на экране. :crazy:
                            Цитата [S]mike @
                            Тот метод что ты привел - топорный и кустарный. Все равно что передвигать мышь попиксельно, чтобы задать ей позицию на экране.

                            я показал, что способ есть... довольно простой способ...

                            Цитата [S]mike @
                            Например, есть у тебя список цветов автомобилей в виде такого множества. Нужно отобразить, сколько всего этих цветов доступно для конкретного автомобиля.

                            а что тебе даёт это знание? вот знание, доступен ли какой-то цвет, полезно...
                            а если всётаки нужно, то и используй подходящий контейнер - список/коллекцию
                              Цитата Shaggy @
                              а если всётаки нужно, то и используй подходящий контейнер - список/коллекцию

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

                              Цитата Shaggy @
                              а что тебе даёт это знание?

                              Отобразить количество доступных цветов :) Да примеров на самом деле масса. Количество не нужно только еси это список состояний объекта, например - там только contains нужен.
                                видимо на мой вопрос все забили. Повторяю дамы и господа уважаемые. Умеет ли делфи какой-нибудь версии искаропки без доп софта работать с такими штуками как например git, svn, etc.?
                                Сообщение отредактировано: A.I. -
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (245) « Первая ... 121 122 [123] 124 125 ...  244 245


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,1222 ]   [ 15 queries used ]   [ Generated: 2.04.26, 13:41 GMT ]