|
Вопрос о статических методах и конструкторе
|
|||
---|---|---|---|
#18+
Добрый день. Ребята подскажите такую вещь: есть класс А и его наследник класс Б. Нужно реазизовать статический метод в классе А который будет создавать и возвращать экземпляр вызывающего класса, т.е. вызываем в классе А статический метод GetObject -получаем экземпляр А класса, вызываем в Б - экземпляр Б класса public ClassA { ... public static ClassA GetObject(param) { //something return new ??? } } ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2013, 15:34 |
|
Вопрос о статических методах и конструкторе
|
|||
---|---|---|---|
#18+
не выйдет ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2013, 16:51 |
|
Вопрос о статических методах и конструкторе
|
|||
---|---|---|---|
#18+
Если в контексте вызова известен тип, инстанс которого нужно вернуть - ну передай этот тип в числе параметров. Что-нить по мотивам private static T GetInstance<T>(Type t, params object[] param) { return (T)Activator.CreateInstance(t, param); } Но вообще, а зачем это может быть нужно - получение в классе нового экземпляра того же класса, причем так, что логику хочется вынести в родителя? Может быть почитать про концепцию, фабрики, возвращающей интерфейс. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2013, 13:37 |
|
Вопрос о статических методах и конструкторе
|
|||
---|---|---|---|
#18+
Не получится, в стектрейсе даже информации по ClassB не будет, только базовый ClassA. Можно вот так провернуть через нестатические методы (обязательно нужен override, тогда в стектрейсе можно выкурить наследуемый тип через первый фрейм). Но за такой код, конечно, нужно плеткой по губам отстёгивать... Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2013, 15:13 |
|
Вопрос о статических методах и конструкторе
|
|||
---|---|---|---|
#18+
МСУобязательно нужен override, тогда в стектрейсе можно выкурить наследуемый тип через первый фреймОга, и тут пришел инлайнинг. Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2013, 15:30 |
|
Вопрос о статических методах и конструкторе
|
|||
---|---|---|---|
#18+
НахлобучМСУобязательно нужен override, тогда в стектрейсе можно выкурить наследуемый тип через первый фреймОга, и тут пришел инлайнинг. Код: plaintext
Бум-кабум, и снова неработающий код в сети. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2013, 15:33 |
|
|
start [/forum/search_topic.php?author=lexxi&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
158ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 817ms |
total: | 1086ms |
0 / 0 |