|
Подскажите по наследованию
|
|||
---|---|---|---|
#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.
Почему выводится A.print1? Ссылка же ведет на тип данных B Если перегрузка, то ищется метод у текущего объекта ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2020, 18:35 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
listtoview Почему выводится A.print1? Ссылка же ведет на тип данных B У хВоста спроси - он наследование любит ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2020, 18:42 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
listtoview, Ты, похоже, на ворнинги вообще не смотришь? Потому что ворнинг CS0114 должен быть. А так-то такие вопросы ну уж совсем джунам на интервью обычно задают. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2020, 18:44 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
listtoview Почему выводится A.print1? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2020, 19:53 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
Shocker.Pro listtoview Почему выводится A.print1? нет тип переменной b является B ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 08:42 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
listtoview Shocker.Pro пропущено... Потому что у тебя b имеет тип A. Учебник прочти. нет тип переменной b является B ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 10:01 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
listtoview Shocker.Pro пропущено... Потому что у тебя b имеет тип A. Учебник прочти. нет тип переменной b является B ты путаешь тип времени выполнения и тип времени компиляции. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 10:20 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
Коллеги, а зачем сделано так что модификатор доступа производного класса должен быть таким же или более строгим чем базового? Например я не хочу что бы животных плодили, а людей пожалуйста ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 15:23 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
А что тут странного. Если кто-то свойство в классе сделал приватным, он понимает, что делать возможность его публичную модификацию опасно (например из-за потери консистентности). А ты хочешь взять и разрушить базовый класс. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 15:31 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
Shocker.Pro А что тут странного. Если кто-то свойство в классе сделал приватным, он понимает, что делать возможность его публичную модификацию опасно (например из-за потери консистентности). А ты хочешь взять и разрушить базовый класс. рефлекшен выручит) ну да, это я чет подтупливаю, вопрос снят просто когда virtual и override все просто, а вот с перегрузкой да еще и new плаваю ушел читать ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 15:39 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
listtoview еще и new "Еще и new" это говнокод. И "virtual", по-хорошему, тоже быть нигде не должно. Должно быть либо "abstract", либо "override sealed". Потому что перегрузка неабстрактных методов, за редким исключением, это тоже говнокод. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 15:47 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
fkthat Потому что перегрузка неабстрактных методов, за редким исключением, это тоже говнокод. Чего это? ))) Целая канистра аксимоматичных утверждений, как выясняется ни на чём не основанных )) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 16:57 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
hVostt Чего это? ))) Это МЕДИАТОР! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 17:22 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
fkthat hVostt Чего это? ))) Это МЕДИАТОР! Да откуда ты эти странные идеи вообще достаёшь? :) Ты бы к ним аттачил хоть парочку обоснований, хотя бы для себя. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 17:27 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
hVostt хоть парочку обоснований Можно подумать, что тебя интересуют обоснования, или, что ты хотя бы их читаешь :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 17:31 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
fkthat hVostt хоть парочку обоснований Можно подумать, что тебя интересуют обоснования, или, что ты хотя бы их читаешь :)) Конечно интересуют, более того, многое мне близко, проходил и даже так когда-то думал ) Разве плохо, иметь чёткое обоснование для тех или иных утверждений. Некоторые вещи намеренно обозначают как "абсолютное зло" (например, GOTO), чтобы выжечь практику использование совсем, на корню. Но это вовсе не означает, что тот же GOTO это абсолютное зло )) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 17:42 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
listtoview просто когда virtual и override все просто, а вот с перегрузкой да еще и new плаваю Еще один повод перейти в java - там, вроде бы, все виртуальное :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 19:18 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
fkthat hVostt Чего это? ))) Это МЕДИАТОР! В некоторых случаях (как, например, с наркотиками) практичней что-то запретить, чем объяснять каждому. Вкратце, перегрузка это всегда способ нагамнюжить при неправильном использовании, причем, что важнее, нагамнюжить не в свой код (это ладно бы), а в чужой. Т.ч. сто раз надо продумать и просчитать, прежде чем давать возможность кому угодно что-то перегружать по своим хотелкам - чаще практичней сделать sealed. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 21:57 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
hVostt Некоторые вещи намеренно обозначают как "абсолютное зло" (например, GOTO), чтобы выжечь практику использование совсем, на корню. Но это вовсе не означает, что тот же GOTO это абсолютное зло )) Смысла нет обсуждать, ведь у вас в ПХП без goto все равно ведь никак? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2020, 23:09 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
fkthat listtoview, Ты, похоже, на ворнинги вообще не смотришь? Потому что ворнинг CS0114 должен быть. А так-то такие вопросы ну уж совсем джунам на интервью обычно задают. CS0108 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2020, 15:50 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#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.
на мой взгляд конкретный тигр должен рычать даж если мы на него смотрим как на кошку. При переопределении так и происходит. А вот зачем нужно впринципе сокрытие непонятно. Поясните пожалуйста. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2020, 18:07 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
listtoview А вот зачем нужно впринципе сокрытие непонятно ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2020, 18:20 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
Сокрытие может возникнуть случайно, если ты добавил метод к унаследованному классу, а потом производитель базового класса добавил метод с такой же сигнатурой. Тогда ты можешь добавить new чтобы подавить варнинг, но лучше по возможности отрефакторить свой метод. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2020, 18:21 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
Shocker.Pro Сокрытие может возникнуть случайно, если ты добавил метод к унаследованному классу, а потом производитель базового класса добавил метод с такой же сигнатурой. Тогда ты можешь добавить new чтобы подавить варнинг, но лучше по возможности отрефакторить свой метод. ок ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2020, 08:04 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
воощем когда VMT, то все хорошо и метод определяется по типу времени компиляции во всех остальных(сокрытие, перегрузка) по типу времени выполнения ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2020, 09:01 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
Shocker.Pro Сокрытие может возникнуть случайно, если ты добавил метод к унаследованному классу, а потом производитель базового класса добавил метод с такой же сигнатурой. Тогда ты можешь добавить new чтобы подавить варнинг, но лучше по возможности отрефакторить свой метод. А хороший производитель базового класса он бы с самого начала по заветам Рихтера сделал бы его sealed и всего этого вороха проблем не было бы в принципе ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2020, 09:54 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
fkthat Shocker.Pro Сокрытие может возникнуть случайно, если ты добавил метод к унаследованному классу, а потом производитель базового класса добавил метод с такой же сигнатурой. Тогда ты можешь добавить new чтобы подавить варнинг, но лучше по возможности отрефакторить свой метод. А хороший производитель базового класса он бы с самого начала по заветам Рихтера сделал бы его sealed и всего этого вороха проблем не было бы в принципе все не виртуальные надо sealed? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2020, 10:13 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
listtoview все не виртуальные надо sealed? Если метод abstract, то значит его специально сдизайнили и предусмотрели для его перегрузки. Если же ты перегружаешь метод, который уже и так имеет реализацию, то это повод подумать что в обсерватории что-то не так. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2020, 10:29 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
listtoview все не виртуальные надо sealed? fkthat Если метод abstract, то значит его специально сдизайнили и предусмотрели для его перегрузки. Если же ты перегружаешь метод, который уже и так имеет реализацию, то это повод подумать что в обсерватории что-то не так. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2020, 11:07 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
короче, разница между абстрактным и виртуальным - это разница между обязан и можешь. А дурной подход Рихтера сделать весь класс sealed порождает то, что ты вынужден писать прокси класс (благо решарпер умеет их генерить), вместо того, чтобы просто унаследовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2020, 11:09 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
fkthat Если метод abstract, то значит его специально сдизайнили и предусмотрели для его перегрузки Разрешите позанудствовать. abstract/virtual к перегрузке никакого отношения не имеет. и полиморфизму в частности :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2020, 19:17 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
Shocker.Pro короче, разница между абстрактным и виртуальным - это разница между обязан и можешь. А дурной подход Рихтера сделать весь класс sealed порождает то, что ты вынужден писать прокси класс (благо решарпер умеет их генерить), вместо того, чтобы просто унаследовать. Истино так, дурной подход ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2020, 19:19 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
hVostt abstract/virtual к перегрузке никакого отношения не имеет. и полиморфизму в частности :) Чо? Угораете? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2020, 21:46 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
Это какая-то уже Оруэлвщина началась свобода-это-рабство а черное это белое, а virtual это не полиморфизм. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2020, 21:48 |
|
Подскажите по наследованию
|
|||
---|---|---|---|
#18+
fkthat hVostt abstract/virtual к перегрузке никакого отношения не имеет. и полиморфизму в частности :) Чо? Угораете? Ну вот те первый попавшийся букварь https://metanit.com/sharp/tutorial/3.5.php Нужно понимать разницу между переопределением и перегрузкой :) Я ж говорю, проблемы с семантикой -- корень всех зол. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2020, 23:00 |
|
|
start [/forum/topic.php?all=1&fid=18&tid=1354593]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
4ms |
track hit: |
174ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 290ms |
0 / 0 |