Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
27.02.2014, 19:19
|
|||
---|---|---|---|
|
|||
Можно ли писать "виртуальные-методы-расширения |
|||
#18+
Привет. Можно ли писать "виртуальные-методы-расширения" ? Я отнаследовал свой класс от системного. А затем для ОБОИХ написал методы расширения с идентичными именами - мне просто нужно их обрабатывать немного по разному. и теперь в коде приходится писать Код: c# 1. 2. 3. 4. 5. 6. 7.
Причем вызывать этот MyMethod приходится во многих местах программы. И такой код выглядит очень раздутым - чем если бы это были виртуальные методы и можно было бы просто вызвать метод MyMethod(). Просто суть в том, что я не имею доступа к системному классу, очевидно, и не могу добавить ему виртуальный метод. использую метод расширения. Как можно все сделать, чтобы код выглядел компактным ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.02.2014, 19:40
|
|||
---|---|---|---|
Можно ли писать "виртуальные-методы-расширения |
|||
#18+
MsSql_StudyЯ отнаследовал свой класс от системного. А затем для ОБОИХ написал методы расширения с идентичными именами - мне просто нужно их обрабатывать немного по разному. А сделать ветвление в методе для базового класс разве нельзя? Код: 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. 25. 26. 27. 28. 29.
Ну и наследование еще есть :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.02.2014, 20:01
|
|||
---|---|---|---|
Можно ли писать "виртуальные-методы-расширения |
|||
#18+
А еще, если не путаю, можно написать 2й ext метод для класса потомка: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.02.2014, 20:04
|
|||
---|---|---|---|
|
|||
Можно ли писать "виртуальные-методы-расширения |
|||
#18+
buser, Я мало подумал, прежде чем тему создавать :) Сам тоже к этому решению и пришел. Пока код писал и обдумывал, понял что можно просто оставить метод расширение только для базового класса и уже в самом методе проверять тип, и уже вызывать специфические методы (они то как раз уже приватные). Наследование не подходит. Выгода метода-расширения в данном моем случае, была просто в краткости написания кода: GetSysElement.SomeMethod(); Сам метод SomeMethod никакого отношения к логике работы класса SysElement не имеет. Нечего переопределять в общем. Спасибо ! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.02.2014, 20:07
|
|||
---|---|---|---|
Можно ли писать "виртуальные-методы-расширения |
|||
#18+
MsSql_Study, Извиняюсь, не дочитал ваше сообщение ) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.02.2014, 20:08
|
|||
---|---|---|---|
|
|||
Можно ли писать "виртуальные-методы-расширения |
|||
#18+
LelouchА еще, если не путаю, можно написать 2й ext метод для класса потомка: Именно так и было :) Но работа шла с базовым классом. Т.е. в методы приходит SysElement и поэтому вызывался его метод. Наверное виртуальны-метод-расширения не написать в принципе, т.к. сами эти методы - статические. Нету таблицы виртуальным методов, или как так оно зовется у объектов. Сделал, как buser рекомендовал, все просто получилось :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.02.2014, 20:08
|
|||
---|---|---|---|
|
|||
Можно ли писать "виртуальные-методы-расширения |
|||
#18+
LelouchMsSql_Study, Извиняюсь, не дочитал ваше сообщение ) Извиняюсь. Я тоже не дочитал Вашего ) Я чаще стараюсь ответить быстрее, чем прочитать все до конца - боюсь забыть ответить видимо :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.02.2014, 14:55
|
|||
---|---|---|---|
Можно ли писать "виртуальные-методы-расширения |
|||
#18+
MsSql_StudyLelouchА еще, если не путаю, можно написать 2й ext метод для класса потомка: Именно так и было :) Но работа шла с базовым классом. Т.е. в методы приходит SysElement и поэтому вызывался его метод. Наверное виртуальны-метод-расширения не написать в принципе, т.к. сами эти методы - статические. Нету таблицы виртуальным методов, или как так оно зовется у объектов. Сделал, как buser рекомендовал, все просто получилось :) buser фигню порекомендовал нахрена тут вообще какие-то статики нужны ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.02.2014, 15:11
|
|||
---|---|---|---|
Можно ли писать "виртуальные-методы-расширения |
|||
#18+
pation, я не рекомендовал - просто предложил :) а рекомендовать тут можно GoF :) Хотя, лично мне кажется, что все можно сделать проще, просто я ни задачи до конца не знаю ни ограничений автора :) а статики тут появились исключительно в контексте extension methods :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.02.2014, 15:45
|
|||
---|---|---|---|
Можно ли писать "виртуальные-методы-расширения |
|||
#18+
Или Вы про реализацию этих всяких через разные там динамики ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=20&tablet=1&tid=1403185]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 158ms |
0 / 0 |