Re[5]: static virtual
От: s.ts  
Дата: 27.02.04 11:28
Оценка:
Здравствуйте, s.ts, Вы писали:

S>> А чем тебе Дельфевая реализация не нравится????

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

ST>нужна реализация для мэйнстрима (си шарп)


ST>да и как я смогу использовать это в других языках ?


кстати, создаваемые в дельфи @MetaИмя_класса — они являются потомками одного класса ?
Re[6]: static virtual
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 27.02.04 11:40
Оценка:
Здравствуйте, s.ts, Вы писали:

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


S>>> А чем тебе Дельфевая реализация не нравится????

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

ST>>нужна реализация для мэйнстрима (си шарп)


ST>>да и как я смогу использовать это в других языках ?


ST>кстати, создаваемые в дельфи @MetaИмя_класса — они являются потомками одного класса ?

Да от @Tclass. Но когда ты создаешь
VirtClass= class of BaseVirtClass;

Все вызовы Finction(VC:VirtClsass):Object;
трансформируются к
Finction(@MetaMyVirtClass.Instanse as BaseVirtClass)
Этим и достигается "статическая" виртуальность
и солнце б утром не вставало, когда бы не было меня
Re[5]: static virtual
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 27.02.04 11:44
Оценка:
Здравствуйте, s.ts, Вы писали:

ST>нужна реализация для мэйнстрима (си шарп)

Ну это будущее покажет C# стандартизован и ограничен в возможностях.
MSDN Ресеч хочет рассширить возможности. В Delphi руки развязаны.
ST>да и как я смогу использовать это в других языках ?
Если классы создавать в Delphi то доступ
через @MetaClassName.@Instanse доступно на любом языке.
Либо ручками делать метаклассы.
и солнце б утром не вставало, когда бы не было меня
Re[6]: static virtual
От: s.ts  
Дата: 27.02.04 12:28
Оценка:
Здравствуйте, Serginio1, Вы писали:

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


ST>>нужна реализация для мэйнстрима (си шарп)

S> Ну это будущее покажет C# стандартизован и ограничен в возможностях.
S>MSDN Ресеч хочет рассширить возможности. В Delphi руки развязаны.
ST>>да и как я смогу использовать это в других языках ?
S> Если классы создавать в Delphi то доступ
S>через @MetaClassName.@Instanse доступно на любом языке.
S>Либо ручками делать метаклассы.

а во всех языках идентификатор может начинаться с @ ?
Re[7]: static virtual
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 27.02.04 12:41
Оценка:
Здравствуйте, s.ts, Вы писали:

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


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


ST>>>нужна реализация для мэйнстрима (си шарп)

S>> Ну это будущее покажет C# стандартизован и ограничен в возможностях.
S>>MSDN Ресеч хочет рассширить возможности. В Delphi руки развязаны.
ST>>>да и как я смогу использовать это в других языках ?
S>> Если классы создавать в Delphi то доступ
S>>через @MetaClassName.@Instanse доступно на любом языке.
S>>Либо ручками делать метаклассы.

ST>а во всех языках идентификатор может начинаться с @ ?

Не знаю. Но странно, что в Net не была заложены изначально метаклассы, так как они есть во многих языках.
и солнце б утром не вставало, когда бы не было меня
Re[8]: static virtual
От: s.ts  
Дата: 27.02.04 15:08
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> Не знаю. Но странно, что в Net не была заложены изначально метаклассы, так как они есть во многих языках.


да уж то еще г...

я вот поначалу радовался, но как колпнешь — нету счастия
Re[6]: static virtual
От: mihailik Украина  
Дата: 27.02.04 15:27
Оценка:
S> Ну это будущее покажет C# стандартизован и ограничен в возможностях

Ну ты маньячишь. Товарищ с вопросом пришёл, а ты ему Дельфи.

Нам бы таких активных в отдел маркетинга, быстро бы весь рынок захватили
... << RSDN@Home 1.1.3 beta 1 >>
Re[10]: static virtual
От: mihailik Украина  
Дата: 27.02.04 15:27
Оценка:
ST>имхо нужно не за чистоту языка бороться, а как-то решать возникающиек проблемы

Реализовать метаклассы это проблема?
... << RSDN@Home 1.1.3 beta 1 >>
Re[4]: static virtual
От: mihailik Украина  
Дата: 27.02.04 15:27
Оценка:
iT>>Кстати, уже несколько раз с огорчением обнаруживал, что этой замечательной вещи мне после Delphi в шарпе не хватает ;(
S> Теперь есть.

Не тормози. В шарпе "теперь нет"
... << RSDN@Home 1.1.3 beta 1 >>
Re[6]: static virtual
От: mihailik Украина  
Дата: 27.02.04 15:27
Оценка:
S>Пиши классы на Delphi используй в шарпе.

И шо, статические виртуальные методы появляются в шарпе?
... << RSDN@Home 1.1.3 beta 1 >>
Re: static virtual
От: mihailik Украина  
Дата: 27.02.04 15:27
Оценка:
ST>вообще как это должно выглядеть по-нормальному ?

Через Hashtable, атрибуты и рефлексию можно реализовать.
... << RSDN@Home 1.1.3 beta 1 >>
Re[6]: static virtual
От: Igor Trofimov  
Дата: 27.02.04 15:46
Оценка: 12 (1) +1
S> А что нельзя Дельфевые объекты в Шарпе использовать?????
S>Пиши классы на Delphi используй в шарпе.

не.. уходя — уходи.
Если уж пишем на C# — то лучше по возможности не использовать другое. От венигрета ничего хорошего не жди.
Re[11]: static virtual
От: s.ts  
Дата: 27.02.04 16:01
Оценка:
Здравствуйте, mihailik, Вы писали:

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


M>Реализовать метаклассы это проблема?


да
хочется минимум ручного кодирования

с шаблонами будет легче, но более-менее приличная реализация возможна только на уровне компилятора или макросов или я не прав

хотелось обсудить как это сделать попроще
Re[6]: static virtual
От: Igor Trofimov  
Дата: 27.02.04 16:01
Оценка:
S> Ну это будущее покажет C# стандартизован и ограничен в возможностях.

Ну, все-таки прогресс имеется — вот, дженерики сделали...
Авось и доберутся до метаклассов рано или поздно.
Хотелось бы конечно ускорить этот процесс, но как?
Ротор соотв. образом дописать — лично у меня ума не хватит.
Re[7]: static virtual
От: s.ts  
Дата: 27.02.04 16:02
Оценка:
Здравствуйте, mihailik, Вы писали:

S>>Пиши классы на Delphi используй в шарпе.


M>И шо, статические виртуальные методы появляются в шарпе?


метаклассы появляются
Re[6]: static virtual
От: s.ts  
Дата: 27.02.04 16:05
Оценка:
Здравствуйте, Serginio1, Вы писали:

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


ST>>нужна реализация для мэйнстрима (си шарп)

S> Ну это будущее покажет C# стандартизован и ограничен в возможностях.
S>MSDN Ресеч хочет рассширить возможности. В Delphi руки развязаны.

по крайней мере настоящее показывает, что лучше от борланда подальше держаться

(это, знаете, похоже на "хороший программист, но как товарищ дерьмо")
Re[2]: static virtual
От: s.ts  
Дата: 27.02.04 16:07
Оценка:
Здравствуйте, mihailik, Вы писали:

ST>>вообще как это должно выглядеть по-нормальному ?


M>Через Hashtable, атрибуты и рефлексию можно реализовать.


а поподробнее можно ?

можно код не писать. а просто по пунктам: "берем это, делаем то, получаем т-а-а-а-к-о-о-о-е "
Re[12]: static virtual
От: mihailik Украина  
Дата: 27.02.04 16:09
Оценка:
M>>Реализовать метаклассы это проблема?

ST>да

ST>хочется минимум ручного кодирования

Всем хочется


ST>с шаблонами будет легче, но более-менее приличная реализация возможна только на уровне компилятора или макросов или я не прав


Может с шаблонами будет и проще немножко.


ST>хотелось обсудить как это сделать попроще


Reflection + Reflection.Emit + атрибуты в такого типа задачах обычно нормально срабатывают.
... << RSDN@Home 1.1.3 beta 1 >>
Re[8]: static virtual
От: mihailik Украина  
Дата: 27.02.04 16:16
Оценка: :)
M>>И шо, статические виртуальные методы появляются в шарпе?

ST>метаклассы появляются


Ну это здорово. Использовать, правда их по делу нельзя, но хоть появляются и то на душе потеплело
... << RSDN@Home 1.1.3 beta 1 >>
Re[3]: static virtual
От: mihailik Украина  
Дата: 27.02.04 16:16
Оценка: 6 (1)
ST>а поподробнее можно ?

1. Для виртуальности нужен контракт. То есть на каждый класс со статическими виртуальными членами нужно завести интерфейс.

2. Нужно завести специальный класс типа брокера, допустим VirtualStaticBroker. Ему передают typeof(Some) и он возвращает интерфейс. Типа VirtualStaticBroker.GetStaticInterface(...).

3. Скрытый класс, который реализует интерфейс придётся строить в Runtime посредством Reflection.Emit. Этой работой будет заниматься VirtualStaticBroker.

4. Чтобы не строить класс на каждый GetStaticInterface нужно его построить и запомнить в Hashtable.

5. Чтобы отделять виртуальные статические методы нужно завести самодельный атрибут вроде как VirtualAttribute.

Вот концептуально и весь сценарий.
... << RSDN@Home 1.1.3 beta 1 >>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.