как можно попроще реализовать статические виртуальные методы для класса (не городя фабрик и т.п.) на С# ?
поделитесь плз. у кого какие идеи по этому поводу ?
вообще как это должно выглядеть по-нормальному ?
04.03.04 20:06: Перенесено модератором из '.NET' — TK
Здравствуйте, s.ts, Вы писали:
ST>как можно попроще реализовать статические виртуальные методы для класса (не городя фабрик и т.п.) на С# ? ST>поделитесь плз. у кого какие идеи по этому поводу ?
ST>вообще как это должно выглядеть по-нормальному ?
Они уже реализованы в Delphi через метаклассы. http://www.rsdn.ru/Forum/Message.aspx?mid=548308&only=1
Здравствуйте, Igor Trofimov, Вы писали:
ST>>>вообще как это должно выглядеть по-нормальному ? S>> Они уже реализованы в Delphi через метаклассы. S>> Но это фича языка.
iT>Кстати, уже несколько раз с огорчением обнаруживал, что этой замечательной вещи мне после Delphi в шарпе не хватает ;(
Теперь есть. Завтра до работы попробую разобраться с Implements
и солнце б утром не вставало, когда бы не было меня
iT>>Кстати, уже несколько раз с огорчением обнаруживал, что этой замечательной вещи мне после Delphi в шарпе не хватает ;( S> Теперь есть. Завтра до работы попробую разобраться с Implements
Здравствуйте, s.ts, Вы писали:
ST>как можно попроще реализовать статические виртуальные методы для класса (не городя фабрик и т.п.) на С# ? ST>поделитесь плз. у кого какие идеи по этому поводу ?
ST>вообще как это должно выглядеть по-нормальному ?
Зачем?
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Serginio1, Вы писали:
S>Здравствуйте, s.ts, Вы писали:
ST>>как можно попроще реализовать статические виртуальные методы для класса (не городя фабрик и т.п.) на С# ? ST>>поделитесь плз. у кого какие идеи по этому поводу ?
ST>>вообще как это должно выглядеть по-нормальному ? S> Они уже реализованы в Delphi через метаклассы. S>http://www.rsdn.ru/Forum/Message.aspx?mid=548308&only=1
Здравствуйте, Serginio1, Вы писали:
S>Здравствуйте, Igor Trofimov, Вы писали:
ST>>>>вообще как это должно выглядеть по-нормальному ? S>>> Они уже реализованы в Delphi через метаклассы. S>>> Но это фича языка.
iT>>Кстати, уже несколько раз с огорчением обнаруживал, что этой замечательной вещи мне после Delphi в шарпе не хватает ;( S> Теперь есть. Завтра до работы попробую разобраться с Implements
ST>виртуальные статические методы видимо не имеют смысла без метаклассов (тпа фабрик, что ли)
Ну, есть же RuntimeType, вот могли бы при инициализации типа делать singleton-потомок от него, описывающий конкретный тип. Эта штука и возвращалась бы по GetType(). Умела бы создавать экземпляры. Обеспечивала бы поддержку виртуальных (для экземпляра, соответственно — статических виртуальных) методов.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, s.ts, Вы писали:
ST>>как можно попроще реализовать статические виртуальные методы для класса (не городя фабрик и т.п.) на С# ? ST>>поделитесь плз. у кого какие идеи по этому поводу ?
ST>>вообще как это должно выглядеть по-нормальному ?
VD>Зачем?
чтобы флейм не разводить на тему Delphi.net vs C#
меня интересует конкретные возможности языков
разумнее, конечно, использовать C#, но хотелось бы знать во что мне выльется отсутствие некоей функциональности (автогенерация фабрик классов) в С#
а может быть это появится через пол-года и там ?
Здравствуйте, Igor Trofimov, Вы писали:
ST>>виртуальные статические методы видимо не имеют смысла без метаклассов (тпа фабрик, что ли)
iT>Ну, есть же RuntimeType, вот могли бы при инициализации типа делать singleton-потомок от него, описывающий конкретный тип. Эта штука и возвращалась бы по GetType(). Умела бы создавать экземпляры. Обеспечивала бы поддержку виртуальных (для экземпляра, соответственно — статических виртуальных) методов.
не понял.
это руководство к действию для меня или для MS ?
iT>Зря не сделали такое в CLR.
Здравствуйте, s.ts, Вы писали:
ST>Здравствуйте, Igor Trofimov, Вы писали:
ST>>>а не собираются ?
iT>>Вроде нет ;(
ST>>>а чего сейчас-то делать ?
iT>>Выкручиваться как-то.
ST>дык какой путь имеет минимальные издержки на кодирование ?
ST>никто не сталкивался ?
ST>можно шаблоны использовать (те, что будут)
кстати, там чего-нибудь типа макросов не предвидится ?
то можно было бы изврат c rtii по типу mfc устроить ?
Здравствуйте, Igor Trofimov, Вы писали:
iT>>>Кстати, уже несколько раз с огорчением обнаруживал, что этой замечательной вещи мне после Delphi в шарпе не хватает ;( S>> Теперь есть. Завтра до работы попробую разобраться с Implements
iT>Ась? В шарпе? хде?
А что нельзя Дельфевые объекты в Шарпе использовать?????
Пиши классы на Delphi используй в шарпе.
и солнце б утром не вставало, когда бы не было меня
ST>виртуальные статические методы видимо не имеют смысла без метаклассов (тпа фабрик, что ли)
Не совсем так. В нативном Delphi как таковых метаклассов нет. Есть VMT которая располагается в две строны с положительным смещением виртуальные методы для экземпляров типа, с отрицательным для инфрмации о типе и виртуальных методов типа (виртуальных статических) ST>вот и вопрос как это реализовать попроще
ST>и какие у этого перспективы
А чем тебе Дельфевая реализация не нравится????
Перпективы в ненужности использования рефлексии и простота использования наследников типов.
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, s.ts, Вы писали:
S>> Теперь есть. Завтра до работы попробую разобраться с Implements
ST>что есть "Implements" ? ST>где смотреть ?
Директива Implements в Delphi говорить, что за реализацию интерфейса(ов) объекта, отвечает объект являющийся полем этого класса. То есть тебе не надо реализовывать все методы интерфеса в классе.
Но чего то у меня не получилось. Хотя директива осталась.
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, Igor Trofimov, Вы писали:
ST>>кстати, там чего-нибудь типа макросов не предвидится ? ST>>то можно было бы изврат c rtii по типу mfc устроить ?
iT>Извратов — лучше не надо. iT>Лучше без метаклассов — но не портить язык.
тогда придется ждать пока MS услышит глас вопиющего в пустыне
имхо нужно не за чистоту языка бороться, а как-то решать возникающиек проблемы
а придурки, как их не ограничивай в возможностях, все равно напишут что-нибудь грустное для окружающих
Здравствуйте, Serginio1, Вы писали:
S>Здравствуйте, s.ts, Вы писали:
ST>>виртуальные статические методы видимо не имеют смысла без метаклассов (тпа фабрик, что ли)
S> Не совсем так. В нативном Delphi как таковых метаклассов нет. Есть VMT которая располагается в две строны с положительным смещением виртуальные методы для экземпляров типа, с отрицательным для инфрмации о типе и виртуальных методов типа (виртуальных статических) ST>>вот и вопрос как это реализовать попроще
могу добавить, типа чтобы все это еще умнее выглядело:
ST>>и какие у этого перспективы S> А чем тебе Дельфевая реализация не нравится???? S> Перпективы в ненужности использования рефлексии и простота использования наследников типов.
нужна реализация для мэйнстрима (си шарп)
да и как я смогу использовать это в других языках ?