powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / VS 2008, WPF и визуальное наследование (окон, форм)
25 сообщений из 293, страница 7 из 12
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359837
chpasha Про сдвиг по фазе: о генериках
Я вот нахожу более удобным в тех очень немногих случаях, когда мне действительно нужен TTypedList - быстренько набросать пару методов и свойств, на том и успокиться.

да ну не гони, ты находишь это проще чем написать List<MyClass> и автоматом получить все что тебе нужно? Притом полный контроль типа на этапе компиляции и никаких косяков, потому что в каком-то из методов Find забыл указать, что регистр не надо сравнивать? или Dictionary там какой? да ну грекс, полно те
Еще раз. Все, о чем ты глаголишь, мне нужно раз в пятилетку.
Про косяки я и вовсе не понял проблематики.

chpasha
Про сдвиг по фазе: о генериках
Вопрос же в другом. Я вот сейчас насчитал всего пару десятков случаев списков
т.е. пару десятков классов с идентичным функционалом, отличающихся только типом елементов списка?
Какие такие пара десятков? Ты VCL уже забыл совсем? Скажи, где они там вообще впились,
типизированные списки эти? Если не в системном коде

chpasha Про сдвиг по фазе: о генериках
Итак, за что боремься то?
меня удивляет, что из всего спорного и не очень в .net, ты отрицаешь полезность одной и несомненно полезнейших (пусть и не совершенных, как утверждают плюсплюсники) фич

Знаешь, я сначала думал, что class helpers, generics, emit, и... даже folding очень даже были бы
полезны. Но потом, поразмыслив, понял, что пользы от них - считай нет вообще.

Т.е. мне нужно специально натянивать, извиняюсь, выдумывать что-то, оправдывающее их
применение, что-бы потом понять, что можно было обойтись и без них (редизайнив).

Честно. В упор не вижу никакой пользы. Там, где мне нужен быстронаколеночный список -
я возьму TObjectList. А если совсем быстро - open array (считай один хрен список).
Они покроют 99.9% быстрых хотелок.

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

Более того, я даже сразу скажу. Список на манер генерика (в его синтаксисе) у меня как-то
вызывает весьма неоднозначные ощущения. С виду просто "уе...нская" корявость (с) Тема.
Неудобно, и пальцы о скобочки ломаются. (Шифт жмакать...)

Чисто внешне, чисто визуально. Как то наколеночно, да. Но это чисто вкусовое, не обессудь.
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359840
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про схоластику EntityСчитаю контроль типов на этапе компиляции обязательным.Городить TXXXField-ы? Не, это не наш метод. А как быть с другими случаями?

Про схоластику EntityЗюЫю Полистав (память) про Entity и биндинг, начал понимать, о чем ты. В принципе да,
задача из отряда: давайте одним кривым дизайном заборем другой кривой дизайн.Ну ка, кто там что говорил про аргументы, про сравнительный анализ? Ась?

ЗЫ: кстати, тема про Variant vs Nullable<T> тоже не раскрыта...
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359841
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaаааа...Нахлобуч жжешь, я думал было про "шаблоны форм" с MVP заикнутся, но не осмелился дразнить грекса паттернами
Да чую я, что реакция будет та же, что и на твой пост.
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359849
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha Нахлобуч
аааа...Нахлобуч жжешь, я думал было про "шаблоны форм" с MVP заикнутся, но не осмелился дразнить грекса паттернами
:)
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359858
Про ?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей КЗЫ: кстати, тема про Variant vs Nullable<T> тоже не раскрыта...
Не путай квадратное с мягким.
И почитай про ? после типа. Я уже говорил выше (который добавляет лишь банально-неявный IsNotNull, не дай бог соврать)
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359859
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нахлобуч chpashaаааа...Нахлобуч жжешь, я думал было про "шаблоны форм" с MVP заикнутся, но не осмелился дразнить грекса паттернами
Да чую я, что реакция будет та же, что и на твой пост.
кстати это поядренней списков будет. Тут уж боксить/анбоксить запаришься
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359870
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про ? Алексей КЗЫ: кстати, тема про Variant vs Nullable<T> тоже не раскрыта...
Не путай квадратное с мягким.
И почитай про ? после типа. Я уже говорил выше (который добавляет лишь банально-неявный IsNotNull, не дай бог соврать)Где прочитать, в документации про Делфи? Ссылку дай на "int?" в Делфи. Очень интересно.
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359887
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про эстетику
Более того, я даже сразу скажу. Список на манер генерика (в его синтаксисе) у меня как-то
вызывает весьма неоднозначные ощущения. С виду просто "уе...нская" корявость (с) Тема.
Неудобно, и пальцы о скобочки ломаются. (Шифт жмакать...)
совсем не аргумент, коли скобочки ломает писать (ну уж если прям так ломает), лабаешь class DoubleList : List<double> и пиши везде new DoubleList(). Лишний класс, но без скобочек ;)

Про эстетику
Чисто внешне, чисто визуально. Как то наколеночно, да. Но это чисто вкусовое, не обессудь.
ну не хош, не надо.
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359899
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaсовсем не аргумент, коли скобочки ломает писать (ну уж если прям так ломает), лабаешь class DoubleList : List<double> и пиши везде new DoubleList(). Лишний класс, но без скобочек ;)
А ишшо есть
Код: plaintext
1.
using DL = System.Collections.Generic.List<double>;
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359907
Алексей К Про схоластику EntityСчитаю контроль типов на этапе компиляции обязательным.Городить TXXXField-ы? Не, это не наш метод. А как быть с другими случаями?

Ну это наш метод потому что as-desined.
Но в целом это дурь, и... оопс, оная решается ничем иным, кроме как генерацией классов от метаданных. Просто эдакий более расширенный DataSet.

Еще раз. У тебя проблема с Field[ i] где? Правильно. В прикладном коде. А системному коду,
по определению, на все эти прикладные изыски (XXX) глубоко должно быть начхать, его инструмент -
как раз Fields[ i] (и подобные).

Вот и все.

Возвращаясь к нашим баранам (сорри, пишу на вражеском языке, надеюсь будет понятно), я хотел бы нечто вроде:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
TForm1 =  class (TForm)
  InvoiceDataSet:  class (TDataSet)
    ...
     property  ID: TIntegerField;
     property  DOC_NUM: TStringField;
     property  DOC_NAME: TStringField;
    ....
   end ;
 end ;

Но не более того. Более - не надо.

И, кстати, ты прекрасно знаешь, что, на самом деле, мне ничего не стоит получить оное (типизированные классы дейтасетов) уже сейчас, просто генерацией кода.

Но извни, на кой хрен тут генерики? А?
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359909
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит скобочки один раз ввести нас ломает, а downcast писать при каждом обращении нас не ломает. Парадокс...
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359912
НахлобучДавай, изобрази без генериков.
Легко, если ты удосужишься объяснить смысл своего (нетленного) примера кода.

Честно говоря, смысла в нем я не увидел.
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359917
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все равно не доганяю, на кой?Но извни, на кой хрен тут генерики? А?Хорошо, зададим вопрос по-другому: "На кой хрен городить всю эту халабуду с полями, когда есть дженерики?".

ЗЫ: чё там с int? в Делфи, я так и не понял.
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359922
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нахлобуч - увы, не Буч.Легко, если ты удосужишься объяснить смысл своего (нетленного) примера кода.

Честно говоря, смысла в нем я не увидел.
Базовый класс для презентеров. От него все презентеры наследуются. Помимо прочего функционала он выставляет свойство View типа TView -- то есть того типа, с которым каждый конкретный (concrete) презентер умеет работать. Другими словами, в миллионе мест в коде презентера вот это:
Код: plaintext
1.
((IMyView)View).SetViewSpecificDataSource(...);
заменяется на
Код: plaintext
1.
View.SetViewSpecificDataSource(...);
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359924
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЗЫ: чё там с int? в Делфи, я так и не понял.
Леш, да нет там такой хни. Тормозным "вариантом" они раскуриваются.
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359926
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все равно не доганяю, на кой?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
TForm1 =  class (TForm)
  InvoiceDataSet:  class (TDataSet)
    ...
     property  ID: TIntegerField;
     property  DOC_NUM: TStringField;
     property  DOC_NAME: TStringField;
    ....
   end ;
 end ;
Интересно, как стандартные визуальные эдиторы в IDE отнесутся к твоему изобретению?
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359935
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЗЫ: чё там с int? в Делфи, я так и не понял.
Леш, да нет там такой хни. Тормозным "вариантом" они раскуриваются.
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359942
Алексей КЗначит скобочки один раз ввести нас ломает, а downcast писать при каждом обращении нас не ломает. Парадокс...

Какие такие downcast?

Подумай сам еще раз. В задаче на списки, при open array - нет, не ломает, т.к. он типизирован.
А там где ломает - режется типизированный TTypedList. Спиномозговым движением десяток строк кода.

И нет никаких (Objects[ i] as Type).Abyrvalg.

Самая тяжелая методика выглядит примерно так:


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 var 
  Item: TTypedItem;
 begin 
   for  I :=  0   to  List.Count -  1   do 
   begin 
    Item := List[i]  as  TTypedItem;

    Items.lalala := 'что то там';
   end ;
 end ;

В чем криминал то?

или и вовсе

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 begin 
   for  I :=  0   to  List.Count -  1   do 
   with  List[i]  as  TTypedItem  do 
   begin 
    lalala := 'что то там';
   end ;
 end ;


Что тут downcast-ового? Где?
Я бы даже спример на foreach привел, но я его не использую в виду проблем с обратной совместимостью (хоть он еще короче).

Итого, о чем ты (что ломать то должно?), я, увы хз вообще.
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359944
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ Алексей КЗЫ: чё там с int? в Делфи, я так и не понял.
Леш, да нет там такой хни. Тормозным "вариантом" они раскуриваются.Походу или я не правильно понял, или он чё-то не то ляпнул. :-)
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359952
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все равно не доганяю, на кой?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
TForm1 =  class (TForm)
  InvoiceDataSet:  class (TDataSet)
    ...
     property  ID: TIntegerField;
     property  DOC_NUM: TStringField;
     property  DOC_NAME: TStringField;
    ....
   end ;
 end ;

Но не более того. Более - не надо.

Но извни, на кой хрен тут генерики? А?
TIntegerField, TStringField и сотоварищи будешь руками писать?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
    class Field<T>
    {
        private readonly T value;

        public Field(T value)
        {
            this.value = value;
        }

        public static implicit operator T(Field<T> field)
        {
            return field.value;
        }

        public static implicit operator Field<T>(T value)
        {
            return new Field<T>(value);
        }

        public override string ToString()
        {
            return value.ToString();
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Field<int> intField = 1;
            Field<string> stringField = "Hello, world";

            intField += 2;

            Console.WriteLine(intField);
            Console.WriteLine(stringField);
        }
    }
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359960
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какие такие даункасты?Что тут downcast-ового? Где?
Тут
Код: plaintext
Item := List[i] as TTypedItem;

ЗЫ: Несколькими постами выше Нахлобуч о том же спросил.
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359980
Алексей К Все равно не доганяю, на кой?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
TForm1 =  class (TForm)
  InvoiceDataSet:  class (TDataSet)
    ...
     property  ID: TIntegerField;
     property  DOC_NUM: TStringField;
     property  DOC_NAME: TStringField;
    ....
   end ;
 end ;
Интересно, как стандартные визуальные эдиторы в IDE отнесутся к твоему изобретению?

Я привел идеальный (не реальный) пример. Про то, что DataField: string неплохо было бы мочить (переводить на Field: TField) я уже говорил отдельно. Но не о том пока речь.

Хотя конечно, ты можешь рассказать, зачем эдитору нужно явно знать тип поля.

Чур, ба, щас. TDBDateTimeEdit. Да. Ему нужен TDateTimeField. Ну и проруби ты явно:
property Field: TDateTimeField для published свойства, делов то.

Генерики тут точно не нужны. Явный конктроль типа, и баста. Можно назначать его, или наследников.
Все просто, как двери.

P.S. А вот в инстпекторе да, было бы прикольно, если бы светился сразу InvoiceDataSet.DOC_DATE
как поле биндинга (в явном типе, а не виде строки для позднего связывания).

Глупый работы было бы как минимум в два раза меньше.
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359984
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, про Nullable<T> я не отстану. Этого реально не хватает в Делфи. Эта задача естественным образом решается с помощью дженериков, и Variant ему не замена.
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359994
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какие такие даункасты?В задаче на списки, при open array - нет, не ломает, т.к. он типизирован .
Какие такие даункасты?Item := List as TTypedItem;
Или ты дурак, или одно из двух.
...
Рейтинг: 0 / 0
VS 2008, WPF и визуальное наследование (окон, форм)
    #35359995
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЭмпирокритицизмГлупый работы было бы как минимум в два раза меньше.Мы тоже можем много чего напридумывать, чего сейчас нету но до этого "один шаг". VFI например.
...
Рейтинг: 0 / 0
25 сообщений из 293, страница 7 из 12
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / VS 2008, WPF и визуальное наследование (окон, форм)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]