|
Как закрыть свойство в классе-наследнике?
|
|||
---|---|---|---|
#18+
мне кажется, я глупость спрашиваю... но яндекс не понимает, чего я хочу от него добиться (гугл на инглише тоже) в базовом классе есть метод (или свойство), которого у наследника быть не должно (вернее, не должно быть доступно извне). Или это невозможно? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 14:56 |
|
Как закрыть свойство в классе-наследнике?
|
|||
---|---|---|---|
#18+
protected override void prop()? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 14:59 |
|
Как закрыть свойство в классе-наследнике?
|
|||
---|---|---|---|
#18+
Konst_Oneprotected override void prop()? наивный подход ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 15:06 |
|
Как закрыть свойство в классе-наследнике?
|
|||
---|---|---|---|
#18+
Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 15:10 |
|
Как закрыть свойство в классе-наследнике?
|
|||
---|---|---|---|
#18+
мм... не получилось. Пишет - "override не допустим". Удаляю. Пишет - "напишите new, если необходимо сокрытие свойства". Думаю - это то, что мне нужно. Добавляю. Получаю: (p.s. прошу прощения, у меня не метод, а свойство, хотя ведь всё равно это не принципиально) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 15:15 |
|
Как закрыть свойство в классе-наследнике?
|
|||
---|---|---|---|
#18+
Pallaris.... прошу прощения, да, всё отлично, всё работает именно так! спасибо)) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 15:17 |
|
Как закрыть свойство в классе-наследнике?
|
|||
---|---|---|---|
#18+
интересно, советчики свои предложения проверяют? Nika gnome, запрос к гуглу - "c# скрыть метод" первый попавшийся ответ - http://www.cyberforum.ru/csharp-beginners/thread157007.html ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 15:20 |
|
Как закрыть свойство в классе-наследнике?
|
|||
---|---|---|---|
#18+
Изопропилинтересно, советчики свои предложения проверяют? Что за устаревший взгляд на выдачу предложений? Еще б студию предложил установить ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 15:27 |
|
Как закрыть свойство в классе-наследнике?
|
|||
---|---|---|---|
#18+
Nika gnome, подобное желание говорит что ты делаешь что-то не то и наследование здесь не подходит. В C# нет механизма для решения данной задачи. Решение предложенное Pallaris работает только частично т.к. все еще сохраняется возможность обратиться к свойству conditions через базовый класс: Код: c# 1. 2.
Здесь можно применить агрегирование, что правда потребует ручного кодирования для всех public членов, но зато скроет любой public член по настоящему. Код: 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. 30.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 15:35 |
|
Как закрыть свойство в классе-наследнике?
|
|||
---|---|---|---|
#18+
PallarisЧто за устаревший взгляд на выдачу предложений? Еще б студию предложил установить зачем? достаточно http://www.compileonline.com/compile_csharp_online.php ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 15:40 |
|
Как закрыть свойство в классе-наследнике?
|
|||
---|---|---|---|
#18+
bazileЗдесь можно применить агрегирование, что правда потребует ручного кодирования для всех public членов, но зато скроет любой public член по настоящему. всю мою программу в основном я именно так и конструирую, агрегируя и создавая "сквозные" методы и свойства. Но тут пришлось сопровождать кое-какой свой старый код... в котором я немножко накасячила :( ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 16:07 |
|
Как закрыть свойство в классе-наследнике?
|
|||
---|---|---|---|
#18+
Nika gnomeнемножко накасячила :( Ошибки надо не признавать. Их надо смывать. Кровью (c) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 16:14 |
|
Как закрыть свойство в классе-наследнике?
|
|||
---|---|---|---|
#18+
Можно так объехать Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 16:32 |
|
Как закрыть свойство в классе-наследнике?
|
|||
---|---|---|---|
#18+
Nika gnome Но тут пришлось сопровождать кое-какой свой старый код... в котором я немножко накасячила :( Ну его можно поменять. 1. Делаем базовый класс без ненужного свойства. 2. Делаем наследника от базового, добавляем "ненужное" свойство и используем в старом коде. 3. Делаем "новый" класс, наследуем от базового, в котором "ненужного" свойства нет и ничего скрывать не нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 17:11 |
|
|
start [/forum/topic.php?fid=20&msg=38798689&tid=1402274]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 336ms |
total: | 457ms |
0 / 0 |