powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Наследование и интерфейсы.
25 сообщений из 384, страница 12 из 16
Наследование и интерфейсы.
    #39722798
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомСамое простое - отказаться от new в принципе, и больше не забивать себе голову.

Ну слава те хоспади

А я о чём? Объявить переопределение вне закона. Максимум где это может потребоваться, в какой-нибудь ущербной кодогенерации.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39722799
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttОбъявить переопределение

**ть

перекрытие, хотел сказать
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39722803
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это новое воплощение cdtyjv, т.е. свеном'а?
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39722845
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buser,

Свято место пусто не бывает))
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39722931
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAAntonariyпропущено...
покажи хотя бы пару слов, объединенным общим смыслом.
Слив засчитан.

Вот тебе пара слов, объединенных общим смыслом. Улавливаешь?Ага, свой потолок смысла ты продемонстрировал.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39722935
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt Соответственно, ты можешь выбрать любое другое имя для нового метода, чё ты прицепился к переопределению? На кой хрен? Что тебе это даст?Блин, не теряй хронологию событий. Еще раз:

2010 год) Ты взял какой-то бинарник xxx, унаследовался от его класса yyy, добавил метод zzz, создал свой бинарник и распространил по миру.
2011 год) Твой бинарник распространился, метод zzz дергают все, кому не лень
2012 год) Бинарник xxx обновился, в классе yyy появился собственный метод zzz, в результате в твоем проекте в классе, который унаследовал zzz, появилось перекрытие, компилятор ругается.
2013 год) твои действия?
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39722946
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,
Это собственно и все, что нужно знать, почему есть модификатор new.
Хотя еще один вариант, который вижу, если в базовом классе член помечен атрибутом и это нужно отменить в классе наследнике. Но это побочный эффект от первого.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39722949
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy2010 год) Ты взял какой-то бинарник xxx, унаследовался от его класса yyy, добавил метод zzz, создал свой бинарник и распространил по миру.
2011 год) Твой бинарник распространился, метод zzz дергают все, кому не лень
2012 год) Бинарник xxx обновился, в классе yyy появился собственный метод zzz, в результате в твоем проекте в классе, который унаследовал zzz, появилось перекрытие, компилятор ругается.
2013 год) твои действия?

сделаю вместо своего унаследованного класса декоратор, если уж на то пошло
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39722953
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВAntonariy,
Это собственно и все, что нужно знать, почему есть модификатор new.Да. И именно этот кейс описан в МСДН, только почему-то доходит он до аудитории со скрипом.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39722963
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttсделаю вместо своего унаследованного класса декоратор, если уж на то пошлоТак в 2012 году пол-мира твой класс заюзало, предлагаешь всем тонны g-кода рефакторить?
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39722965
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пардон, в 2011м
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39722982
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyhVosttсделаю вместо своего унаследованного класса декоратор, если уж на то пошлоТак в 2012 году пол-мира твой класс заюзало, предлагаешь всем тонны g-кода рефакторить?

А смотря как они используют "мой" класс. Если они используют мою реализацию, но передают по ссылке на базовый класс, то твоё перекрытие не поможет. А так, если это просто какой-то метод и никакое ООП не используется, тогда декоратор.

Пол мира скачает новую версию моей либы и всё у них будет работать, так как наименование и сигнатура класса останется, только он уж не будет переопределять чужой класс, а внутри его переиспользовать как мне надо.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39722993
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
Не вижу версионирования в ваших играх на пол мира.
Версия 3.4.567.4 уже не работает?
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723013
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЕсли они используют мою реализацию, но передают по ссылке на базовый класс, то твоё перекрытие не поможет.
Хвост, ты не чувствуешь всю глубину момента!
Если они используют свой метод, который есть только в наследнике, то его нет в базовом классе и по ссылке на базовый класс его вызвать нельзя, компилятор не даст.
Вот такая картина маслом!
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723015
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВХвост, ты не чувствуешь всю глубину момента!
Если они используют свой метод, который есть только в наследнике, то его нет в базовом классе и по ссылке на базовый класс его вызвать нельзя, компилятор не даст.
Вот такая картина маслом!

Ну дык я о чём и говорю. Перекрытие не окажет влияние при передаче по ссылке на базовый класс.
А по сути классы так и используются, эт ж ООП.
То на что ВИПРОС морщит нос ))
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723165
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttПол мира скачает новую версию моей либы и всё у них будет работать, так как наименование и сигнатура класса останется, только он уж не будет переопределять чужой класс, а внутри его переиспользовать как мне надо.ЯННП с этими переопределениями и переиспользованиями. Вот пример:

Код: 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.
31.
//чужой бинарник
    public class BaseBinary
    {
        public void OldMethod() { }
        public void NewMethod() { } //2012
    }

//твой код и бинарник
    public class YouBinary : BaseBinary 
    {
        public void NewMethod() { } //2011
        public void YourMethod() { }
    }

//чужой код
    public class FinalBinary : YouBinary
    {
        public void DoSomething(){ }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var fb = new FinalBinary();
            fb.OldMethod();
            fb.YourMethod();
            fb.NewMethod();
            fb.DoSomething();
        }
    }

Как ты без new избавишься от предупреждения о перекрытии, чтобы чужой код не пришлось менять? В упор не вижу, куда тут декоратор можно воткнуть.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723169
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локализаторам студии стали больше денег платить :))
В 2012й (в которой сейчас писал) предупреждение звучит "используйте новое ключевое слово" вместо "используйте ключевое слово new".
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723207
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мальчики и девочки, соблюдайте принципы объектно-ориентированного проектирования!
Они как раз про то, чтобы не было больно, когда вдруг что-то меняется.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723219
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyЛокализаторам студии стали больше денег платить :))
В 2012й (в которой сейчас писал) предупреждение звучит "используйте новое ключевое слово" вместо "используйте ключевое слово new".

Немедленно вспоминается, как в одной старой игрушке студия Фаргус перевела названия переменных в скриптах на русский, в итоге что-то ключевое переставало работать :)
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723223
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyКак ты без new избавишься от предупреждения о перекрытии,выше было - #pragma
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723230
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сразу в настройках проекта указать Suppress warnings: 108, и вся недолга.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723343
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyКак ты без new избавишься от предупреждения о перекрытии, чтобы чужой код не пришлось менять? В упор не вижу, куда тут декоратор можно воткнуть.

У тебя проблема здесь:

Antonariy
Код: c#
1.
2.
3.
4.
5.
var fb = new FinalBinary();
            fb.OldMethod();
            fb.YourMethod();
            fb.NewMethod();
            fb.DoSomething();



Давай ты поменяешь var на BaseBinary?
И посмотрим, что у тебя получится в итоге.
Потому что именно так оно обычно используется.

А если тебе нужно просто какой-то метод вызвать и пофигу в каком он классе, создай отдельный класс. Зачем пихать в текущий?

Декоратор нужен, когда у тебя два разных интерфейса.

А метод с другой семантикой, но одним и тем же именем -- это намёк.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723385
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,
Вот пример по версионности сегодня встретил:
авторИзменения в версии 4.0
Из-за подавляющей боли , устраняющей ошибку № 205 - Внедряя стратегию версии сборки , мы реорганизовали библиотеки в одну библиотеку System.Reactive. Чтобы предотвратить нарушение существующего кода, который ссылается на библиотеки v3, у нас есть фасады с TypeForwarders для новой сборки. Если у вас есть ссылка на двоичный файл, созданный против v3.0, используйте новый System.Reactive.Compatibilityпакет.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723388
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обратная совместимость - миф )
Помнится, попытался запустить прогу, написанную под Access 2.0 в Access 95 (это следующая версия, если кто не в курсе) - хрена с два она заработала - вывалилась гора ошибок.
С тех пор у меня пропала вера в совместимость, и я очень не люблю обновлять любые библиотеки, а когда вынужден - заранее выделяю на это много времени и тщательно готовлю откат.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723401
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProОбратная совместимость - миф )без сомнения.
И даже MS сам ее постоянно ломает.
...
Рейтинг: 0 / 0
25 сообщений из 384, страница 12 из 16
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Наследование и интерфейсы.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]