![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Gunslinger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: нет Всего: 3 |
В мсдн пишут, что запечатывать можно только классы, свойства и методы. Какие причины? Например, если я запечатаю класс, в котором будут индексаторы и\или события?
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 2 Всего: 211 |
||||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 6 Всего: 118 |
azesmcar, думаю речь про sealed спецификатор
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 2 Всего: 211 |
||||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 17 Всего: 306 |
||||
|
||||
| Gunslinger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: нет Всего: 3 |
да, я про sealed. Думал запечатать=sealed=запрет наследования\переопределения в наследнике. Кусок мсдн: Модификатор sealed можно использовать для метода или свойства, которое переопределяет виртуальный метод или свойство в базовом классе. но sealed можно и не к virtual методам,свойствам применить. Это сообщение отредактировал(а) Gunslinger - 23.8.2010, 09:05 |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 17 Всего: 306 |
Gunslinger, сам переводишь документацию?
|
|||
|
||||
| Gunslinger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: нет Всего: 3 |
||||
|
||||
| ДобренькийПапаша |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 14.1.2006 Где: г.Москва Репутация: 3 Всего: 7 |
И что? Модификатор sealed означает, что класс (метод, свойство), не может быть унаследовано. Исходя из этого определения, непонятен смысл вашего вопроса. Кстати, Трэй Нэш рекомендует всегда по умолчанию объявлять класс как sealed (ещё говорят не запечатанный, а герметезированный). -------------------- Меня зовут Себастьян Парейра, торговец чёрным деревом. |
|||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 2 Всего: 211 |
а с чего ты решил, что selaed не применяется к индексаторам? Добавлено через 50 секунд http://msdn.microsoft.com/en-us/library/aa664459(VS.71).aspx Добавлено через 2 минуты и 7 секунд держи пример
|
||||
|
|||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 17 Всего: 306 |
да я так и понял. просто пока писал, ты уже на это намекнул. вопрос снимаю. тогда по сабжу - неужели не хватает разъяснения в документации? Добавлено через 1 минуту и 4 секунды не только он. |
|||
|
||||
| Gunslinger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: нет Всего: 3 |
"С# 2008 для профессионалов. Платформа Net 3.5"
и http://msdn.microsoft.com/ru-ru/library/88c54tsw.aspx Сказано, что sealed может быть использован для методов, свойств, классов. Про индексаторы, события, операторы и тд. ни слова. Причем в отношении методов и свойств sealed может использоваться только в сочетании с override. Для свойств,методов sealed значит,что их нельзя переопределить в наследнике. Тогда:
Метод F() класса B нельзя переопределить, если мы захотим наследовать от B. Какой в этом смыл? Т.е. F() уже становится "обычным", не виртуальным методом - его и так уже нельзя будет переопределить в наследнике от B. Это сообщение отредактировал(а) Gunslinger - 23.8.2010, 11:53 |
|||
|
||||
| KelTron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: 11 Всего: 38 |
Нет Индексатор это свойство -------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
|||
|
||||
| diadiavova |
|
||||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 18 Всего: 142 |
Ты просто не сможешь его унаследовать, компилятор будет матюгаццо.
Индексаторы - это тоже свойства, только с параметрами. Это сообщение отредактировал(а) diadiavova - 23.8.2010, 11:39 -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
||||
|
|||||
| Gunslinger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: нет Всего: 3 |
Пока переписывал пост ответили. Значит про индексаторы не написано, потомуч то это тоже свойство. В итоге запечатать можно только свойство, индексатор, метод и класс?
з.ы. было бы неплохо добавить возможность блокировки написания ответов, пока перередактируешь пост. А то потратил время на ответ, а потом оказывается, что пост изменен. |
|||
|
||||
| ДобренькийПапаша |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 14.1.2006 Где: г.Москва Репутация: 3 Всего: 7 |
sealed в наследнике указываем, чтобы, опять же, явно сказать, что в следующем наследнике по иерархии этот метод нельзя переопределить. Это проектировочное решение.
-------------------- Меня зовут Себастьян Парейра, торговец чёрным деревом. |
||||||
|
|||||||
| Gunslinger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: нет Всего: 3 |
То есть переопределенный метод так же и виртуальный по умолчанию? Виртуальными методы делают,чтобы единообразно работать с объектами различных классов-наследников одного и того же базового класса. Зачем делать так: "в следующем наследнике по иерархии этот метод нельзя переопределить", когда можно унаследоваться от самого базового класса - cl? Только если нужно все содержимое промежуточного класса (AnClass)? Вроде изменить функционал, не копируя вручную содержимое существующего класса? Например: Car, Mazda : Car, Mazda2 : Mazda? |
|||
|
||||
| ДобренькийПапаша |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 14.1.2006 Где: г.Москва Репутация: 3 Всего: 7 |
Да.
Очевидно, чтобы унаследовать все члены иерархии. Если унаследуем только самый старший класс, то промежуточный унаследован не будет (а он вероятно добавил свои методы...) -------------------- Меня зовут Себастьян Парейра, торговец чёрным деревом. |
||||
|
|||||
| Gunslinger |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: нет Всего: 3 |
Прикольная фишка. В с++ о такой, кажется, не было - в учебниках не встречал. Эта фишка только си шарпа или общая у языков со сборщиком мусора и байт-кодом, как, например, словари и списки?
Спасибо. Но если под свойствами подразумевались и индексаторы, то под методами подразумеваются только методы, или еще события, делегаты, операторы? Ведь с технической точки зрения это тоже методы. |
||||
|
|||||
| KelTron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: 11 Всего: 38 |
Оператор - если ты имеешь в виду перегрузку операторов - реализуется в виде функции. Делегат это класс. http://msdn.microsoft.com/ru-ru/library/900fyy8e.aspx
Ключевое слово event просто синтаксический сахар, чтобы меньше писать. http://forum.vingrad.ru/forum/topic-73975.html http://dev4food.ru/2010/02/kovarnyj-vopros-po-eventdelegate/ -------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 18 Всего: 142 |
Индексаторы и есть свойства. В бейсике, например, для объявления индексатора даже используется слово Property, хотя компилируется он в то же, во что компилируются индексаторы в шарпе. В рефлексии доступ к индексаторам можно получить так же, как к любым другим свойствам. Просто в шарпе не поддерживаются никакие параметризированные свойства кроме индексаторов, из-за этого синтаксис для их объявления несколько упрощен, но от этого они не перестают быть свойствами. События вполне могут быть виртуальными http://msdn.microsoft.com/ru-ru/library/8627sbea.aspx -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| Gunslinger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: нет Всего: 3 |
ок.
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |