Re[12]: static virtual
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.02.04 09:57
Оценка:
Здравствуйте, s.ts, Вы писали:

ST>меньше знаешь — крепче спишь


Точно. Сразу видно мастреа.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: static virtual
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.02.04 09:57
Оценка:
Здравствуйте, s.ts, Вы писали:

ST>посмотрел

ST>мимо

А куда стрелял то?
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: static virtual
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.02.04 09:57
Оценка:
Здравствуйте, s.ts, Вы писали:

ST>опять мимо


Слушай, меня твоя игра в морской бой несколько раздражает. Ты или иди "крепче спать". Или объясняй толком что ты хочешь добиться?

ST>я что, должен, искать в топике все твои однообразные высказывания и отвечать односложно ? зачем дублировать сообщения в разных ветках ?


Ты вот это читал?

ST>заведи ветку под названием "Activator.CreateInstance" — там обсудим твое предложение (в данном случае оно бессмысленно, а почему — подумай малость)


Учись задавать вопросы так чтобы на них можно было ответить, тогда и не то не будут предлагать.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: static virtual
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.02.04 09:57
Оценка: -2
Здравствуйте, AndrewVK, Вы писали:

AVK>На этот вопрос тебе давно ответили — нету. А для того чтобы сказать что есть вместо нужна конкретная задачка в которо тебе это понадобилось.


АВК, снеси этот морской бой во флйм. Там как раз давно таких умных тем небыло.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: static virtual
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.02.04 10:22
Оценка: +1
Здравствуйте, s.ts, Вы писали:

ST>и опять во многом благодаря VladD2, который всех назвал дураками и таким образом решил поставленную задачу


А по моему прежде всего благодаря тебе. Ты так и не ответил нафига оно тебе нужно.
... << RSDN@Home 1.1.3 beta 2 (mobile station) >>
AVK Blog
Re[12]: static virtual
От: s.ts  
Дата: 28.02.04 10:25
Оценка: :)
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, s.ts, Вы писали:


ST>>все маньяки плохо кончают (и маньяки дотнета тоже — понятно к чему я ?)


VD>Понятно, понятно... понятно что Шарп у тебя второй язык.


в каком смысле ?

1. если в смысле второй по степени владения, а 1-м считать русский, то ты мне явно льстишь

2. если второй по счету, а первым ты считаешь какой-то другой ЯП, то ты меня явно недооцениваешь

не поверишь:

c, c++, matlab, clipper ( несколько ассемблеров и языков субд — не в счет ?) последний год/полтора — дельфи (турбо-паскаль в детском возрасте, видать, тоже не в счет ), далее, кажется, с#

перечислил только то, на чем больше года писал каждый день (ефстефстфенно, не в академических целях)

такие, млин, дела

в общем, что бы ты не имел ввиду, опять пальцем в небо
Re[6]: static virtual
От: s.ts  
Дата: 28.02.04 10:27
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, s.ts, Вы писали:


ST>>не знаю как уж там в лиспе, но в с++ сабж. реализуется запросто (шаблоны+макросы)


VD>Ты себе плохо представляешь задачу. С++ язык статический. И в чтобы сделать каие-нибудь рантайм-навороты нужно ой как попатеть.


при чем тут рантайм-навороты ?

закроем...
Re[16]: static virtual
От: s.ts  
Дата: 28.02.04 10:34
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, s.ts, Вы писали:


ST>>и со своим createInstance ты мимо кассы попал


VD>У тебя касса замаскирована. Если бы ты скзал, что тебе нужно, то и проблем не было бы. А ты вмето этого пытаешся применять опыт полученый на не аналогичном продукте. Причем делашь это бездумно и упорно.


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

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

опять раздули черти-что

на работу-то время остается? или вся жизнь в форуме ?
Re[13]: static virtual
От: s.ts  
Дата: 28.02.04 10:35
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, s.ts, Вы писали:


ST>>меньше знаешь — крепче спишь


VD>Точно. Сразу видно мастреа.


это я про тебя
Re[9]: static virtual
От: s.ts  
Дата: 28.02.04 10:36
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, s.ts, Вы писали:


ST>>посмотрел

ST>>мимо

VD>А куда стрелял то?


ты цитирование удалил, чтобы не иметь ответа на свой вопрос чуть выше?

ок. размещаю его ниже:

R>


ST>Здравствуйте, VladD2, Вы писали:


VD>>В общем, без разницы. Пишел в МСДН-е "Activator class" в индексе и читаешь описание.


ST>Ok. посмотрю. закрыто.
Re[9]: static virtual
От: Igor Trofimov  
Дата: 28.02.04 11:22
Оценка: 9 (1)
VD>Кстати, почти уверен что для менеджед-классов этой фигни с виртуальными статическими методами сделать будет нельзя. В дотнете просто нет этого бреда.

Угу. И очень жаль, что нет этого, как ты выразился "бреда".
Имхо, "бред" — это скорее inplace-делегаты и yield (или как он правильно пишется?).
А точнее, не бред — а не такая уж и нужная и бесспорная вещь.

А вот возможность получить ссылку на тип, обязательно являющийся подклассом заданного типа — это очень и очень ценная возможность, повышающая типобезопасность. без нее приходится делать тупые проверки и потенциально небезопасный кастинг вниз по иерархии.

Или, например, возможность узнать у типа какую-то информацию о типе, но не только банальный FullName, а что-то более интересное.

Например, для любого типа typed dataset узнать информацию о структуре, не создавая экземпляра за счет виртуальных членов типа dataset. Было бы неплохо.
Расскажи, как вы, выходцы из C++, обделенного такими возможностями, решаете подобные задачи.
Re[5]: static virtual
От: Igor Trofimov  
Дата: 28.02.04 11:23
Оценка:
VD>Зечем? Для создания объекта в рантайме есть Activator.

Затем. Работа с типами не ограничивается банальным созданием экземпляра. Выше я привел два конкретных примера задач.
Re[13]: static virtual
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.02.04 12:12
Оценка:
Здравствуйте, s.ts, Вы писали:

ST>c, c++, matlab, clipper ( несколько ассемблеров и языков субд — не в счет ?) последний год/полтора — дельфи (турбо-паскаль в детском возрасте, видать, тоже не в счет ), далее, кажется, с#


ST>перечислил только то, на чем больше года писал каждый день (ефстефстфенно, не в академических целях)


ST>такие, млин, дела


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

ST>в общем, что бы ты не имел ввиду, опять пальцем в небо


Ну, вот такой уж ты игрок в морской бой. Все вынуждаешь бить по площадям. А я как-то не очень люблю эту игру.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: static virtual
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.02.04 12:12
Оценка:
Здравствуйте, Igor Trofimov, Вы писали:

iT>Угу. И очень жаль, что нет этого, как ты выразился "бреда".

iT>Имхо, "бред" — это скорее inplace-делегаты и yield (или как он правильно пишется?).
iT>А точнее, не бред — а не такая уж и нужная и бесспорная вещь.

Это все синтаксический сахар. Ничего концептуального. Удобно, только и всего.

iT>А вот возможность получить ссылку на тип, обязательно являющийся подклассом заданного типа — это очень и очень ценная возможность, повышающая типобезопасность. без нее приходится делать тупые проверки и потенциально небезопасный кастинг вниз по иерархии.


ДаунКастинг принципиально не может быть опасным. Ты видимо имел ввиду наоборт АпКастинг.

Честно говоря вообще не ясно зачем вы там химичите в таких объемах. Ну, да ваше дело. То что было в Дешьфи — это чистой воды грязный хак. Причем от АпКастинга он не спасает. Один фиг придется делать приведение. Ни в одной книге по ООП ты не найдеш такой фичи как в дельфи.

iT>Или, например, возможность узнать у типа какую-то информацию о типе, но не только банальный FullName, а что-то более интересное.


А в чем проблема?

iT>Например, для любого типа typed dataset узнать информацию о структуре, не создавая экземпляра за счет виртуальных членов типа dataset.


Да нет проблем. Типизированный датасет — это обычный класс дотнета. Получай его описание в виде Type и читай все что хочешь. Вот только зачем тебе это? В рантайме куда удобнее и быстрее читать обычный датастет (если он создан динамически), а если он создан статически, то нифига фигней заниматься используй его как известный тип и будет тебе счастье.

iT> Было бы неплохо.

iT>Расскажи, как вы, выходцы из C++, обделенного такими возможностями, решаете подобные задачи.

Везде есть свои подходы, свои приемущества и недостатки. На тех же шаблонах народ творин совершенно не вероятные вещи. Только за частую — это такой же изврат как только что предложил ты.

Что же касается "вы... из С++"... у меня нет отдельной любви к С++, хотя на нем я программировал наверно дольше всего. Я и на дельфи года три пописал. Так что более чем реально представляю возможности. У дотнетных языков возможностей не меньше, просто их нужно с умом и по месту использовать. Задница как раз и начинается, когда пытаются эмулировать что-то на чем-то не вместо того чтобы решать свои задачи оптимальным образом.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: static virtual
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.02.04 12:12
Оценка:
Здравствуйте, s.ts, Вы писали:

ST>при чем тут рантайм-навороты ?


При том, что то что ты называешь виртуальными статическими функциями и ссылками на класс — это все фасад за которым кроется рантайм.

ST>закроем...


ОК.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[17]: static virtual
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.02.04 12:12
Оценка: 2 (1)
Здравствуйте, s.ts, Вы писали:

ST>можно было ответить односложно :

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

Тебе это человек пять ответило, но тебе же мало.

ST>ну а у кого есть идеи лучше, чем меню "замена", могут высказать свое мнение. и ведь пытались, кабы не появился тут некий "борец за непонятно что, но против" с ответами типа "а зачем?"


Вообще-то это вопрос. Но можно ответить и так. На дурацкие вопросы даем одекватные ответы.

ST>на работу-то время остается? или вся жизнь в форуме ?

ST>

Ты в календарь заглядываешь?

И вообще, что-бы не заботиться о своем благосостоянии, работе и т.п. У меня то проблем ни с работой, ни с зарплатой нет. Чего и вам желаю.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: static virtual
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.02.04 12:12
Оценка: +1
Здравствуйте, s.ts, Вы писали:

VD>>А куда стрелял то?


ST>ты цитирование удалил, чтобы не иметь ответа на свой вопрос чуть выше?


В общем задолбал ты окончательно. Я так понимаю ответы тебе не нежны. За-то время ты свое бережешь. По сему завазывай пургу гнать. Займись делом.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: static virtual
От: Igor Trofimov  
Дата: 28.02.04 13:09
Оценка: 27 (2) +1
VD> ДаунКастинг принципиально не может быть опасным. Ты видимо имел ввиду наоборт АпКастинг.

Ну это как дерево рисовать С корнем внизу или с корнем наверху.

iT>>Например, для любого типа typed dataset узнать информацию о структуре, не создавая экземпляра за счет виртуальных членов типа dataset.


VD>Да нет проблем. Типизированный датасет — это обычный класс дотнета. Получай его описание в виде Type и читай все что хочешь.


Замечательно. Как мне из его Type прочитать, сколько таблиц входит в этот typed DataSet и какие у них колонки? Создавать только для этого экземпляр я не хочу — это уродливо!

Заметь, эта информация статична по отношению к конкретному типу датасета — она общая для всех его экземпляров. Хочется получить ее обобщенно из типа. Зная, что этот тип — подтип типа DataSet.

VD>Везде есть свои подходы, свои приемущества и недостатки. На тех же шаблонах народ творин совершенно не вероятные вещи. Только за частую — это такой же изврат как только что предложил ты.


Язаметил, ты очень любишь всякие нехорошие слова "Бред, изврат"
Изврат — это создавать экземпляр объекта, чтобы получить информацию, общую для всех экземпляров, то есть информацию о типе.

VD>Что же касается "вы... из С++"... у меня нет отдельной любви к С++, хотя на нем я программировал наверно дольше всего. Я и на дельфи года три пописал. Так что более чем реально представляю возможности. У дотнетных языков возможностей не меньше, просто их нужно с умом и по месту использовать. Задница как раз и начинается, когда пытаются эмулировать что-то на чем-то не вместо того чтобы решать свои задачи оптимальным образом.


Никто не собирается ничего "эмулировать". Задачи, которые я приводил — вытекают не из возможностей Delphi или другого языка, где это есть, а из самой парадигмы ООП. И именно с отсутствующими возможностями они решались бы оптимальным способом, а не через задницу, как это приходится делать сейчас.

Языки можно сравнивать, если они работают в некоторой общей парадигме (имхо, поэтому C# и Perl несравнимы, а C#, Delphi, Java — сравнимы).

И вот, просто работая в рамках концепции ООП и возникают все эти задачки.
Возьмем тот же С++, думаю, не будешь отрицать, что там работа с типами вообще очень сильно ограничена. А хочется. Почему хочется? Потому что это логично вытекает из парадигмы. Объекты, классы. Сохранили объект виртуальным методом в поток — а как восстанавливать? Нужна информация о типе.

Вот точно также и возможности, о которых мы тут говорим, вытекают из парадигмы. Да, они нужны чуть реже, без них обойтись, выкрутиться, проще, чем без Activator.CreateInstance. Но они очень логично и целостно вписываются в общую картину. Поэтому когда в одном языке эти возможности есть, а в другом — их нет, просто нет, это как минимум вызывает недоумение. ПОЧЕМУ их нет? И не говори, что они не нужны. Нужны.

Ты же постановил аксиомой — "в .net языках есть все, что нужно, кому этого мало — тот дурак".

Итак, я привел тебе два конкретных примера, когда мне хочется расширенной информации о типе на уровне языка — расскажи, как их "оптимально решать" в C#.

решения на Delphi примерно такие:

1. Передача типа — потомка заданного типа
type TControlClass = class of TControl;
procedure AddControl(ControlClass : TControlClass);


2. Извлечение информации о типе, специфичной для всех типов — подтипов заданного

// Базовый тип
type DataSet = class(Component)
   ... 
   // Виртуальный член типа
   class function GetDataSetName : string; virtual;
   ...
end;

// Ссылка на тип, производный от базового
TDataSetClass = class of TDataSet;
...
// Переменная ссылки на такой тип
var DataSetClass : TDataSetClass;
....
// Извлечение информации о конкретном типе
ShowMessage(DataSetClass.GetDataSetName);
Re[14]: static virtual
От: s.ts  
Дата: 28.02.04 13:14
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, s.ts, Вы писали:


ST>>c, c++, matlab, clipper ( несколько ассемблеров и языков субд — не в счет ?) последний год/полтора — дельфи (турбо-паскаль в детском возрасте, видать, тоже не в счет ), далее, кажется, с#


ST>>перечислил только то, на чем больше года писал каждый день (ефстефстфенно, не в академических целях)


ST>>такие, млин, дела


VD>Возможно. Но то упорство с которым ты пытаешся получить отсуствующую и не нужную возможность наводит на мысли. Странно, что ты не потребовал множественного наследования, обработки формул в мат-виде, и изам-инструкций для управления БД.


а насчет нужности... хотелось бы иметь все... но за приемлемую цену и в приемлемые сроки... поэтому всего и нету в одном месте... на счет ненужности лучше не говорить, а то тут еще на 100 постов ветка вырастет

ST>>в общем, что бы ты не имел ввиду, опять пальцем в небо


VD>Ну, вот такой уж ты игрок в морской бой. Все вынуждаешь бить по площадям. А я как-то не очень люблю эту игру.


ладно, мир
уже суббота а я еще на работе

p.s. очередной раз предлагаю ввести правило, что участники обсуждений обходятся без взаимных оценок и ярлыков (мне что, теперь ник менять на "A1потопил"? ), а также не занимаются оценкой знаний друг друга (короче, следят за базаром ) — надоело читать "ты не знаешь/не понимаешь-сам не знаешь/не понимаешь"
Re[12]: static virtual
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.02.04 16:14
Оценка: +1
Здравствуйте, Igor Trofimov, Вы писали:

iT>Замечательно. Как мне из его Type прочитать, сколько таблиц входит в этот typed DataSet и какие у них колонки? Создавать только для этого экземпляр я не хочу — это уродливо!


iT>Заметь, эта информация статична по отношению к конкретному типу датасета — она общая для всех его экземпляров. Хочется получить ее обобщенно из типа. Зная, что этот тип — подтип типа DataSet.


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

iT>Изврат — это создавать экземпляр объекта, чтобы получить информацию, общую для всех экземпляров, то есть информацию о типе.


Точно изврат. А нафига? Что это за информация такая, что экземпляр нужен?

iT>Никто не собирается ничего "эмулировать". Задачи, которые я приводил — вытекают не из возможностей Delphi или другого языка, где это есть, а из самой парадигмы ООП.


Вот и интересно что это за задачи такие. Предыдущий оратор на этот вопрос заявил что у него времени мало и ему работать нужно.

iT> И именно с отсутствующими возможностями они решались бы оптимальным способом, а не через задницу, как это приходится делать сейчас.


Что именно приходится делать через задницу?

iT>И вот, просто работая в рамках концепции ООП и возникают все эти задачки.

iT>Возьмем тот же С++, думаю, не будешь отрицать, что там работа с типами вообще очень сильно ограничена. А хочется. Почему хочется? Потому что это логично вытекает из парадигмы.

Из парадигмы ООП? Ничуть. ООП не предполагает наличие неизвестных на стадии компиляции типов. Это уже другая парадигма — компонентная модель. А ее в С++ нет, не поддерживает он ее. Потому и метаданных нет.

iT>Вот точно также и возможности, о которых мы тут говорим, вытекают из парадигмы. Да, они нужны чуть реже, без них обойтись, выкрутиться, проще, чем без Activator.CreateInstance. Но они очень логично и целостно вписываются в общую картину. Поэтому когда в одном языке эти возможности есть, а в другом — их нет, просто нет, это как минимум вызывает недоумение. ПОЧЕМУ их нет? И не говори, что они не нужны. Нужны.


Вот и хотелось бы узнать зачем. Я как то ни разу потребности не испытал, хотя на Дельфи в свое время писал очень много.

iT>Ты же постановил аксиомой — "в .net языках есть все, что нужно, кому этого мало — тот дурак".


Нет конечно, ничего такого он не подразумевал. Просто когда говорят что что то нужно, потому что очень хочется, никак не обосновывая то естественно возникает вопрос — нафига?

iT>Итак, я привел тебе два конкретных примера,


Какие то они некудышние.
... << RSDN@Home 1.1.3 beta 2 (mobile station) >>
AVK Blog
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.