|
Перекрытие метода потомком.
|
|||
---|---|---|---|
#18+
Странно что наряду с override можно чз new перекрыть просто если нужно вызвать метод собственного типа, ну так приведи к типу и вызывай ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 13:55 |
|
Перекрытие метода потомком.
|
|||
---|---|---|---|
#18+
new в c# 7 раньше просто пишешь метод и все ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 13:56 |
|
Перекрытие метода потомком.
|
|||
---|---|---|---|
#18+
ааа, не получится просто привести попадос ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 13:56 |
|
Перекрытие метода потомком.
|
|||
---|---|---|---|
#18+
listtoviewСтранно что наряду с override можно чз new перекрыть Шо, опять? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 13:58 |
|
Перекрытие метода потомком.
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныlisttoviewСтранно что наряду с override можно чз new перекрыть Шо, опять? ну если привести к базовому типу, но метод все равно собственный будет вызван ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 14:01 |
|
Перекрытие метода потомком.
|
|||
---|---|---|---|
#18+
стоп что то я запутался беру таймаут ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 14:02 |
|
Перекрытие метода потомком.
|
|||
---|---|---|---|
#18+
Получится и без new, но будет ворнинг вылазить. Спецом так сделано, чтобы ты понимал, что делаешь. А вообще это "плохая практика". Даже очень плохая. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 14:13 |
|
Перекрытие метода потомком.
|
|||
---|---|---|---|
#18+
listtoviewСон Веры Павловныпропущено... Шо, опять? ну если привести к базовому типу, но метод все равно собственный будет вызван В смысле, на колу мочало, старая тема 52-й раз? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 14:19 |
|
Перекрытие метода потомком.
|
|||
---|---|---|---|
#18+
возможность такая есть, но вот использовать её не стоит, имхо. Если такая необходимость всё же есть, возможно имеет смысл определить интерфейс с вашим методом, а в классе создать закрытую реализацию этого метода и работать с ним через этот интерфейс, чем перекрывать существующие методы. Назовите его MethodEx, Method2, MethodByListtiview, может это и более уродское название, но это лучше, чем перекрывать методы базового класса. Тем более, что это не отменяет того, что я смогу их вызвать просто приведя тип к базовому. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 14:31 |
|
Перекрытие метода потомком.
|
|||
---|---|---|---|
#18+
listtoviewnew в c# 7 раньше просто пишешь метод и все Данунах. Это было начиная с самой первой версии. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 15:06 |
|
Перекрытие метода потомком.
|
|||
---|---|---|---|
#18+
listtoviewстоп что то я запутался беру таймауткнижку почитай ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 15:26 |
|
Перекрытие метода потомком.
|
|||
---|---|---|---|
#18+
listtoviewстоп что то я запутался беру таймаут Все очень просто на самом деле. Если метод переопределен (new), то конкретный метод для вызова будет выбран во время компиляции, в соответствии с тем, каким типом объявлена переменная. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
В случае с перегрузкой (override) выбор метода происходит во время выполнения (таблица виртуальных методов), и поэтому вызовется метод, который принадлежит реальному типу объекта Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
В общем-то перегружать методы которые имеют реализацию это тоже не очень хорошая практика. Правильней делать базовый абстрактный класс с абстрактным методом и перегружать этот абстракный метод. Единственное исключение - это какая-нибудь очевидная базовая реализация по-умолчанию (например, вообще пустая). ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 15:56 |
|
Перекрытие метода потомком.
|
|||
---|---|---|---|
#18+
коллеги, спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2019, 20:09 |
|
Перекрытие метода потомком.
|
|||
---|---|---|---|
#18+
а если без new Код: c# 1. 2. 3. 4. 5. 6. 7.
я так понимаю будет то же самое что с new, только интелисенс подчеркивает зеленой волнистой ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 10:04 |
|
Перекрытие метода потомком.
|
|||
---|---|---|---|
#18+
т.е. new чисто для интелисенс ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 10:04 |
|
Перекрытие метода потомком.
|
|||
---|---|---|---|
#18+
и new с c# 7 вроде как ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 10:05 |
|
Перекрытие метода потомком.
|
|||
---|---|---|---|
#18+
listtoviewи new с c# 7 вроде как Вот самая старая спека ECMA которую удалось сейчас найти. Это кажись самая первая версия C. ECMA-334, 1st editionA class-member-declaration is permitted to declare a member with the same name or signature as an inherited member. When this occurs, the derived class member is said to hide the base class member. Hiding an inherited member is not considered an error, but it does cause the compiler to issue a warning. To suppress the warning, the declaration of the derived class member can include a new modifier to indicate that the derived member is intended to hide the base member. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 10:25 |
|
Перекрытие метода потомком.
|
|||
---|---|---|---|
#18+
listtoviewт.е. new чисто для интелисенс Интеллисенс тут ни при чем - читай выше, написано же - чтобы компилятор не выдавал ворнинг о том что ты готовишься себе в ногу выстрелить. Но, если у вас на ворнинги компилятора (как во многих местах делается) внимания вообще не обращают, то может оно вам вообще и не нужно :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2019, 10:29 |
|
|
start [/forum/topic.php?fid=20&msg=39811121&tid=1398955]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
126ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 252ms |
total: | 462ms |
0 / 0 |