Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как в С# использовать метаклассы?
|
|||
|---|---|---|---|
|
#18+
Привет. Задача такая: создать метод, параметром которого будет тип данных (класс) и внутри этого метода создать экземпляр переданного класса. Для примера привожу как схематически я это делал на паскале: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 13:50 |
|
||
|
Как в С# использовать метаклассы?
|
|||
|---|---|---|---|
|
#18+
я так думаю нужно передавать тип класса, а потом через Activator например созать инстанс, но в отличии от паскаля ты не можешь нормально увидеть какие параметры требует конструктор, тобишь нужно будет знать их.. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 14:01 |
|
||
|
Как в С# использовать метаклассы?
|
|||
|---|---|---|---|
|
#18+
а ну и использовать так: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 14:05 |
|
||
|
Как в С# использовать метаклассы?
|
|||
|---|---|---|---|
|
#18+
Спасибо - попробую! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 14:18 |
|
||
|
Как в С# использовать метаклассы?
|
|||
|---|---|---|---|
|
#18+
Лиман Артёмно в отличии от паскаля ты не можешь нормально увидеть какие параметры требует конструктор, тобишь нужно будет знать их.. Не надо человека вводить в заблуждение. Класс Type содержит все необходимое для получения полного набора метаданных о классе - собственно именно для этого он и существует. В том числе и параметров, передаваемых конструктору. Лиман Артём Test(gettype(MyClass)) Что такое "gettype" ?? Может все таки Код: plaintext -- WBR, Roman S. Golubin ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2005, 11:54 |
|
||
|
Как в С# использовать метаклассы?
|
|||
|---|---|---|---|
|
#18+
Roman S. Golubin Не надо человека вводить в заблуждение. Класс Type содержит все необходимое для получения полного набора метаданных о классе - собственно именно для этого он и существует. В том числе и параметров, передаваемых конструктору. никто никого не вводит в заблуждение! при вызове FormClass.Create будут подсвечены необходимые для конструктора параметры, а метаданные нужно еще получить.. Roman S. Golubin Что такое "gettype" ?? Может все таки Код: plaintext ну да, gettype это из васика, ну ошибся - даже на солнце есть пятна) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2005, 12:16 |
|
||
|
Как в С# использовать метаклассы?
|
|||
|---|---|---|---|
|
#18+
Лиман Артёмпри вызове FormClass.Create будут подсвечены необходимые для конструктора параметры, а метаданные нужно еще получить.. Ключевое слово: Лиман Артём... тобишь нужно будет знать их.. И скажи после этого, как же "при вызове FormClass.Create будут подсвечены необходимые параметры", если ты их даже не знаешь? И что вообще означает слово "подсвечены" применительно, например, к блокноту? :-)) И чем тогда не устраивает конструктор с набором _известных_ параметров и приведением созданного экземпляра к базовому классу? Код: plaintext -- WBR, Roman S. Golubin PS: Лиман Артёмну да, gettype это из васика, ну ошибся - даже на солнце есть пятна) Все мы люди, все мы человеки и ни кто тебе это в вину не ставит :-)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2005, 13:16 |
|
||
|
Как в С# использовать метаклассы?
|
|||
|---|---|---|---|
|
#18+
Roman S. Golubin Лиман Артёмпри вызове FormClass.Create будут подсвечены необходимые для конструктора параметры, а метаданные нужно еще получить.. Ключевое слово: Лиман Артём... тобишь нужно будет знать их.. И скажи после этого, как же "при вызове FormClass.Create будут подсвечены необходимые параметры", если ты их даже не знаешь? И что вообще означает слово "подсвечены" применительно, например, к блокноту? :-)) И чем тогда не устраивает конструктор с набором _известных_ параметров и приведением созданного экземпляра к базовому классу? Код: plaintext я имею ввиду, что при передаче в паскале типа класса, при вызове Type.Create интелисенс покажет какие параметры принимает конструктор. при использовании Activatora эти параметры не показываются, нужно просто знать что они есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2005, 13:40 |
|
||
|
Как в С# использовать метаклассы?
|
|||
|---|---|---|---|
|
#18+
Ещё вопрос по поводу кода: Код: plaintext 1. 2. 3. 4. Здесь в метод Test можно передать любой класс. Как сделать чтобы параметр classType мог принимать только определённые классы, например только TMyForm и его наследников? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2005, 14:09 |
|
||
|
Как в С# использовать метаклассы?
|
|||
|---|---|---|---|
|
#18+
может вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2005, 14:25 |
|
||
|
Как в С# использовать метаклассы?
|
|||
|---|---|---|---|
|
#18+
Я уже так сделал как вы написали. Мне интересно можно ли это на этапе компилляции сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2005, 15:30 |
|
||
|
|

start [/forum/topic.php?fid=20&tid=1437391]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 359ms |

| 0 / 0 |
