Re[28]: static virtual
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 01.03.04 15:47
Оценка:
Здравствуйте, Serginio1, Вы писали:

AVK>>И какое отношение статические методы или атрибуты имеют к количеству экземпляров?


S> Вызов конструкторов, дополнительная информация о классах.


И что вызов конструкторов?

AVK>>Не можно, а нужно.

S> Так и делается только с ограничением на количество экземпляров класса .

При чем тут количество экземпляров?

S>>> а повторно использовать уже созданные, но там тоже возникают проблемы с освобождение подчиненных объектов.


AVK>>Какие?

S> Например есть объект, у него поле со ссылкой на другой объект. Иногда приходится делать поиск.
S> Док.Клиен.Договор.Счет и еще можно привести кучу примеров. Но теперь у следующего клиента эти поля не нужны клиента не нужны.

Ну и какое это имеет отношение к кешу метаданных?

S>>> Легче создать и удалить.


AVK>>Это при 10 то миллионах вызовов и 400 классах? Ну ну.

S> Смех смехом А вот разницы как раз и нет. Создание происходит очень быстро и 10 мил это пшик. Во Во. Но кончно же кэширутся,

Что кешируется? Что создается? Ты опять о чем то о своем.
... << RSDN@Home 1.1.3 stable >>
AVK Blog
Re[29]: static virtual
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 01.03.04 16:08
Оценка:
Здравствуйте, AndrewVK, Вы писали:


AVK>Что кешируется? Что создается? Ты опять о чем то о своем.

Ну не совсем, я об этом уже сколько толкую.
Пример, есть документ у которого есть поле неопределенного типа Субкото, по Ид типа я должен создать экземпляр класса и просчитать, в следующей записи документа Субконто имеет другой тип.
Старое значение субконто записывается в таблицу с ассоциированным с типом кэшем экземпляров типа или уничтожается. Итак далее. Но данный пример только с одним документом, на самом деле этих документов может быть много. Вся беда с неопределенными типами.
И нужно вызывать конструкторы и брать из кэша.
Мета классы позволяют легко создавать объекты данного типа и создавать и получать статическую информацию для данного типа.
и солнце б утром не вставало, когда бы не было меня
Re[11]: static virtual
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.03.04 17:03
Оценка:
Здравствуйте, mihailik, Вы писали:

M>Э. Ну, просто мой сарказм был слишком сильно замаскирован


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

iT>1. Передача типа — потомка заданного типа

iT>
iT>type TControlClass = class of TControl;
iT>procedure AddControl(ControlClass : TControlClass);
iT>


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

iT>

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

iT>// Ссылка на тип, производный от базового
iT>TDataSetClass = class of TDataSet;
iT>...
iT>// Переменная ссылки на такой тип
iT>var DataSetClass : TDataSetClass;
iT>....
iT>// Извлечение информации о конкретном типе
iT>ShowMessage(DataSetClass.GetDataSetName);
iT>


Привыкли все делать одним путем напоминающим русское достижение в области удалния кланд и считаете что других путей нет:
Type type = dataSetCastToObject.GetType();
Console.WriteLine(type.Name);


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

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


Вот именно.

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


AVK>Какие то они некудышние.


Ага. Эмуляция GetType .
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[14]: static virtual
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.03.04 17:03
Оценка:
Здравствуйте, Igor Trofimov, Вы писали:

iT>Ну, может, я плохо сформулировал, но, надеюсь, сама проблема понятна?


Не. В том то и дело. Что ну в упор не вижу поблему.

С помощью этих фич ты решаешь две проблемы: 1. Получение информации о типе в рантайме. Это в дотнете делает метод GetType, причем не от илюзорного класса, а от любокго объекта ссылку на который можно получить. 2. Динамическое создание экземпляра объекта. Это решается Activator-ом.

Так что проблема просто в том, что вам похоже просто хочется, что бы было как в Дельфи.

Ято же касается рассуждений о других языках... то приведите хоть один кроме дельфи где были бы виртуальные метода не-инстанс-методы.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: static virtual
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 01.03.04 17:18
Оценка:
Здравствуйте, VladD2, Вы писали:


VD>Привыкли все делать одним путем напоминающим русское достижение в области удалния кланд и считаете что других путей нет:

VD>
VD>Type type = dataSetCastToObject.GetType();
VD>Console.WriteLine(type.Name);
VD>


VD>

Да суть то в том, что хочется этот Type расширить, а кроме как метаклассов не получится.
Тебе хватает type.Name, а кому то нужно несколько другое представление и отображение.
Вопрос тебе Type на все случаи жизни хватает?????
и солнце б утром не вставало, когда бы не было меня
Re[13]: static virtual
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 01.03.04 17:20
Оценка:
Здравствуйте, VladD2, Вы писали:
VD>
VD>Type type = dataSetCastToObject.GetType();
VD>Console.WriteLine(type.Name);
VD>


VD>

Кроме того сам Type это метакласс но не расширяемый.
Предлагают ассоциированный с этим типом расширяющий его метакласс, не нравится.
Вот и пойми , что человеку нужно.
и солнце б утром не вставало, когда бы не было меня
Re[14]: static virtual
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 01.03.04 17:30
Оценка:
Здравствуйте, Serginio1, Вы писали:

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

VD>>
VD>>Type type = dataSetCastToObject.GetType();
VD>>Console.WriteLine(type.Name);
VD>>


VD>>

S> Кроме того сам Type это метакласс но не расширяемый.
S>Предлагают ассоциированный с этим типом расширяющий его метакласс, не нравится.
S>Вот и пойми , что человеку нужно.
Кроме того организован он как в Delphi ссылка в VMT с отрицательным смещением(по поводу C++ был спор и ответ получил что не определено)
и по сути все его методы можно считать статическими виртуальными.
Метаклассы несут ту же нагрузку только расширяемы.
и солнце б утром не вставало, когда бы не было меня
Re[9]: static virtual
От: mihailik Украина  
Дата: 01.03.04 17:32
Оценка:
M>>И что, в дотнете нет готового решения?
S> Решить можно все и не обязательно на до нете.

Это угроза?

S>Но так как Type не расширяем, то дельфевые метаклассы этим как раз и занимаются. Плохо это или хорошо решать каждому индивидуму.


Ладно. Каждому так каждому. Но если есть готовое средство, делать "дельфёвые метаклассы" по меньшей мере экстравагантно.
... << RSDN@Home 1.1.3 beta 1 >>
Re[13]: static virtual
От: mihailik Украина  
Дата: 01.03.04 17:32
Оценка:
ST>а, видимо, в том, чтобы решать свои задачи адекватными для выбранной платформы (в т.ч. языковой) методами и платформы правильно для своих задач выбирать

По любому!
... << RSDN@Home 1.1.3 beta 1 >>
Re[12]: static virtual
От: mihailik Украина  
Дата: 01.03.04 17:32
Оценка:
S> Лепешки это вещь классная. Но наследники от Type не возможны для ручного дополнения. А в чем проблема???

В общем, постановляю считать статическую виртуальность несвоевременной и неактуальной

Полезная вещь, но на данном этапе исторического развития, ценности большой не представляет.

Согласен с такой резолюцией?
... << RSDN@Home 1.1.3 beta 1 >>
Re[12]: static virtual
От: mihailik Украина  
Дата: 01.03.04 17:32
Оценка:
S>Тогда надо было флейм развести. На тему всеобщего равенства и братства языков программирования, принесенную в нашу жизнь дотнетом.

По любому
... << RSDN@Home 1.1.3 beta 1 >>
Re[10]: static virtual
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 01.03.04 17:46
Оценка:
Здравствуйте, mihailik, Вы писали:

M>>>И что, в дотнете нет готового решения?

S>> Решить можно все и не обязательно на до нете.

M>Это угроза?


S>>Но так как Type не расширяем, то дельфевые метаклассы этим как раз и занимаются. Плохо это или хорошо решать каждому индивидуму.


M>Ладно. Каждому так каждому. Но если есть готовое средство, делать "дельфёвые метаклассы" по меньшей мере экстравагантно.

Почему экстравогантно. Delphi 8 сама их делает. Но нет готового средства.
Вот объясни мне дураку, чем расширение Type экстравагантно????
А ведь Type тот же метакласс.
и солнце б утром не вставало, когда бы не было меня
Re[11]: static virtual
От: mihailik Украина  
Дата: 01.03.04 17:54
Оценка: +1
M>>Ладно. Каждому так каждому. Но если есть готовое средство, делать "дельфёвые метаклассы" по меньшей мере экстравагантно.

S>Вот объясни мне дураку, чем расширение Type экстравагантно????


Ну потому, что и так всё путём. Как говорится, зачем платить больше?


P.S. Не, ну если в Дельфи есть — хорошо. А к C# прикручивать это фанатизм чистой воды. Такое нужно наказывать рублём
... << RSDN@Home 1.1.3 beta 1 >>
Re[12]: static virtual
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 01.03.04 18:10
Оценка:
Здравствуйте, mihailik, Вы писали:

M>>>Ладно. Каждому так каждому. Но если есть готовое средство, делать "дельфёвые метаклассы" по меньшей мере экстравагантно.


S>>Вот объясни мне дураку, чем расширение Type экстравагантно????


M>Ну потому, что и так всё путём. Как говорится, зачем платить больше?



M>P.S. Не, ну если в Дельфи есть — хорошо. А к C# прикручивать это фанатизм чистой воды. Такое нужно наказывать рублём

Да ради бога, если так рассуждать мне тоже много не нужно. И зачем только насоздавали не нужного кода???
И уж если говорить об ООП, нужно это или не нужно не важно, то почему Type нельзя расширять??? Чем он отличается от любого класса????
и солнце б утром не вставало, когда бы не было меня
Re[30]: static virtual
От: mihailik Украина  
Дата: 01.03.04 18:32
Оценка:
S> Мета классы позволяют легко создавать объекты данного типа и создавать и получать статическую информацию для данного типа.

Что такое "данный тип"? Ты хранишь в БД название типа?

Если название, то задача перерождается в получение статической информации по названию типа.
... << RSDN@Home 1.1.3 beta 1 >>
Re[13]: static virtual
От: mihailik Украина  
Дата: 01.03.04 18:38
Оценка:
S>И уж если говорить об ООП, нужно это или не нужно не важно, то почему Type нельзя расширять??? Чем он отличается от любого класса????

Ты что, вообще против значка sealed? Это же основы!
... << RSDN@Home 1.1.3 beta 1 >>
Re[14]: static virtual
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.03.04 20:04
Оценка: 2 (1) :)))
Здравствуйте, Serginio1, Вы писали:

S> Да суть то в том, что хочется этот Type расширить, а кроме как метаклассов не получится.


Фигню не гвори. Это же не макросы. Создавай код (хоть эмитом) и расширяй на здоровье.

S> Тебе хватает type.Name, а кому то нужно несколько другое представление и отображение.


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

S> Вопрос тебе Type на все случаи жизни хватает?????


Ну, водку и баб не заменяет конечно...
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: static virtual
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.03.04 20:04
Оценка: +1
Здравствуйте, Serginio1, Вы писали:

S> Кроме того организован он как в Delphi ссылка в VMT с отрицательным смещением(по поводу C++ был спор и ответ получил что не определено)

S>и по сути все его методы можно считать статическими виртуальными.
S>Метаклассы несут ту же нагрузку только расширяемы.

Очень советую не говорить о том, о чем имешь поверхностное представление. Если действительно интересно как устроена рантайм-информация о типах в дотнет ищи в гугле по словам metod table, fjit.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.