• 123-ий © (26.01.09 11:43) [0]
    Вот кто нибудь может объяснить, что тако дженерики? В C# я не разбираюсь и код не понимаю. Вот на дельфовых примерах покажите, а...
  • KilkennyCat © (26.01.09 11:44) [1]
    Не переживай, все равно по утверждениям тех, кто пытался в 2009 Delphi их работать - они не работают :)
  • 123-ий © (26.01.09 11:46) [2]

    > KilkennyCat ©   (26.01.09 11:44) [1]

    ну, во-первых, меня уже заинтриговали, а во вторых, говорят, что к D2010 будут работать. Поэтому хочу просветиться в этом плане. :)
  • Ega23 © (26.01.09 11:48) [3]

    > Поэтому хочу просветиться в этом плане. :)


    Открывай книжку - и вперёд.
  • boa_kaa © (26.01.09 11:55) [4]
    ну и ну
    - объясните мне, кто такие попугаи, только птиц я никогда не видел, посему объясните на зебре...
  • 123-ий © (26.01.09 11:57) [5]

    > Открывай книжку - и вперёд.

    дык по d2009 вроде нет книжиц. мне бы просто суть ихнюю ну и пример на дельфях, даже если он не работает =)) я просто не в курсе, нафиг они нужны вообще =)
  • MBo © (26.01.09 12:02) [6]
    Примеры из Generics.Collections
    1. Процедура сортировки массива любых данных.
    К сожалению, не допускается регулярная процедура с параметрами-дженериками, так что придется делать метод класса.
    TArray = class
     private
       class procedure QuickSort<T>(var Values: array of T; const Comparer: IComparer<T>;   L, R: Integer);

    интерфейс Comparer предоставляет функцию сравнения. Если важна скорость, лучше  использовать анонимную функцию сравнения.

    2. Структуры данных, которые могут хранить любой тип
    TList<T> - список
    TQueue<T> - очередь
    TStack<T> - стек
    TDictionary<TKey,TValue>  - словарь
  • 123-ий © (26.01.09 12:27) [7]
    Примерно уже понял, спасибо. Только вот скажите, чем же имеющиеся в D2009 дженерики хуже тех, что в C#? Или лучше?
  • clickmaker © (26.01.09 12:30) [8]
    > что тако дженерики?

    http://blogs.codegear.com/davidi/2008/07/23/38915
  • 123-ий © (26.01.09 12:34) [9]

    > clickmaker ©   (26.01.09 12:30) [8]

    все что надо было читать =) спасибо.
    но вопрос о различиях дженериков дельфовых и сишарпных актуален.
  • clickmaker © (26.01.09 12:48) [10]
    > вопрос о различиях дженериков дельфовых и сишарпных актуален

    а то, что сами языки разные, не смущает?
    шарп компилится в промежуточный язык IL, дельфи - сразу в нативный
    ну а концептуально - разницы нет
  • 123-ий © (26.01.09 12:52) [11]

    > clickmaker ©   (26.01.09 12:48) [10]

    просто насколько я понял, дельфовые дженерики слишком примитивны по сравнению с C#-ими. вот поэтому и интересуюсь... интересна разница в использовании на практике.
  • KilkennyCat © (26.01.09 13:04) [12]

    > но вопрос о различиях дженериков дельфовых и сишарпных актуален.

    а какая разница? Разумеется, там есть различия. Как и во всем остальном.
  • 123-ий © (26.01.09 13:07) [13]

    > KilkennyCat ©   (26.01.09 13:04) [12]

    значит получается, что никакой разницы особой нет.
  • Jack128_ (26.01.09 13:55) [14]

    >
    > интерфейс Comparer предоставляет функцию сравнения. Если
    > важна скорость, лучше  использовать анонимную функцию сравнения.
    >

    чем лучше???
  • test (26.01.09 14:16) [15]
    Jack128_   (26.01.09 13:55) [14]
    Чем Comparer ))
    Похоже они еще к единому мнению не пришли как оно должно работать.
  • MBo © (26.01.09 14:34) [16]
    >Jack128_
    Эээ...
    Это я тесты на скорость вспомнил, которые прогонял пару месяцев назад.
    Однако сейчас посмотрел в них, и заметил, что у меня дефолтный компаратор запрашивался на каждой итерации цикла, что неразумно. Так что надо будет попробовать корректнее сравнить.
  • jack128_ (26.01.09 20:48) [17]

    > Похоже они еще к единому мнению не пришли как оно должно
    > работать.

    не знаю кто там к чему не пришел, но вызов анонимного метода - это вызов метода интерфейса. Читаем http://barrkel.blogspot.com/2008/11/somewhat-more-efficient-smart-pointers.html
  • test (27.01.09 04:30) [18]
    jack128_   (26.01.09 20:48) [17]
    Странно а в чем тогда массовые глюки?
Есть новые Нет новых   [134453   +38][b:0][p:0.001]