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

До вас не достучаться.
А уважаемый Хвост возможно знает иные способы вызова методов, акромя как через ссылку на класс?
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723409
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ,
Он про автоприведение типов.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723414
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProОбратная совместимость - миф )
Помнится, попытался запустить прогу, написанную под Access 2.0 в Access 95 (это следующая версия, если кто не в курсе) - хрена с два она заработала - вывалилась гора ошибок.
С тех пор у меня пропала вера в совместимость, и я очень не люблю обновлять любые библиотеки, а когда вынужден - заранее выделяю на это много времени и тщательно готовлю откат.
Вроде не для кого уже не секрет, что если изменилась мажорная версия, то смотри, а нет-ли каких-либо breaking changes.
Если минорная версия меняется, то ничего падать не должно.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723427
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Внешняя библиотека 2017
Код: c#
1.
2.
 public class Base//2017
    { }


Мой код
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
  public class First:Base
    {
        public void M1() { }
        void Test()
        {
            M1();
        }
    }


Обновление внешней библиотеки, 2019 год
Код: c#
1.
2.
3.
4.
 public class Base//2019
    {
        protected void M1() { }
    }



void Test()
{
M1();//что должен сделать компилятор при обновлении библиотеки?
}
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723442
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAntonariyКак ты без new избавишься от предупреждения о перекрытии, чтобы чужой код не пришлось менять? В упор не вижу, куда тут декоратор можно воткнуть.

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

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


Давай ты поменяешь var на BaseBinary? А я тут при чем? Это не у меня проблема, а у твоей клиентуры, которая заюзала твой бинарник таким вот способом. Это уже готовые программные продукты при всех их архитектурных недостатках. И это не фантастика, ты сам прекрасно осознаешь, как слабо местный контингент ориентируется в паттернах на твоем фоне.

Это - условие задачи, не перекраивай его под свое видение идеальной вселенной.

Перекраивать ты можешь только "свой" код, и все способы кройки и шитья твоего кода сводятся в две группы: в одной процитированный говнокод перестает работать и требует рефакторинга, в другой продолжает работать, как будто ничего не случилось.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723445
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВчто должен сделать компилятор при обновлении библиотеки? а new чем тут поможет?
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723448
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ,
Оператор new не перекрывает метод. Перекрывает одинаковое имя метода.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723465
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ЕвгенийВчто должен сделать компилятор при обновлении библиотеки? а new чем тут поможет?
Компилятор подставит new самостоятельно и выкинет предупреждение. Это позволит коду по прежнему продолжать работать.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723469
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВКомпилятор подставит new самостоятельноэто как? Поправит мой код? Серьезно?
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723471
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ,

Блин, я у студии а ты когда?
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723479
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ЕвгенийВКомпилятор подставит new самостоятельноэто как? Поправит мой код? Серьезно?
Вот именно, поправит код.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723482
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВВот именно, поправит код.как протестировать.
Я поражен что он без согласия правит код.
Буду проверять.
При открытии проекта?
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723520
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ЕвгенийВВот именно, поправит код.как протестировать.
Я поражен что он без согласия правит код.
Буду проверять.
При открытии проекта?

Да блин, компилятор . Не в исходниках же.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723522
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя, у меня студья правила код. Пряма в сырцах, *ука.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723530
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортом,
Дык код правится или нет без ответа Да программиста?
)))))))))) LOL
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723531
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомХотя, у меня студья правила код. Пряма в сырцах, *ука.у тебя студия отшельника)
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723540
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Агнец за бортом,
Дык код правится или нет без ответа Да программиста?
)))))))))) LOL

И да и нет. В лучших традициях.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723548
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортом,
Врете вы все. Компилятор не правит код сам.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723622
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВДо вас не достучаться.
А уважаемый Хвост возможно знает иные способы вызова методов, акромя как через ссылку на класс?

Я же привёл в этой ветке пример с классом Stream.
Почитай плз и задай ещё раз вопрос.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723625
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВvoid Test()
{
M1();//что должен сделать компилятор при обновлении библиотеки?
}

Сказать, что ты не прав.

Что делать, если ты вдруг решил заменить фундамент дома?

Т.е. C# тебе позволяет использовать перекрытие с помощью new.

Только вот нафига? Т.е. это ничего не решает, ничего не даёт хорошего, но приводит к большим проблемам в перспективе.

Задача: должно скомпилироваться, это знаешь, задача мягко говоря так себе.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723627
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyПерекраивать ты можешь только "свой" код, и все способы кройки и шитья твоего кода сводятся в две группы: в одной процитированный говнокод перестает работать и требует рефакторинга, в другой продолжает работать, как будто ничего не случилось.

Ну обычно это решается адаптерами и декораторами.
Это известные способы решения проблем совместимости с чужими библиотеками и их изменениями.

Перекрытие new -- это НЕ решение. Это даже не ad hoc, это п&(_#@ц. Вот что это.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723628
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВЭто позволит коду по прежнему продолжать работать.

Вопрос, правильно ли?

ХЗ.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723657
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЕвгенийВДо вас не достучаться.
А уважаемый Хвост возможно знает иные способы вызова методов, акромя как через ссылку на класс?

Я же привёл в этой ветке пример с классом Stream.
Почитай плз и задай ещё раз вопрос.
Дай ссылку.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723661
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЕвгенийВЭто позволит коду по прежнему продолжать работать.

Вопрос, правильно ли?

ХЗ.
Дизайнеры языка решили, что это меньшее из зол. С этим надо жить.
...
Рейтинг: 0 / 0
Наследование и интерфейсы.
    #39723666
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Ну обычно это решается адаптерами и декораторами.
Это известные способы решения проблем совместимости с чужими библиотеками и их изменениями.

Т. е. у тебя есть такая "маленькая" библиотечка, в которой как минимум на каждый класс и структуру из стандартной библиотеки .NET по декоратору и адаптору?
...
Рейтинг: 0 / 0
25 сообщений из 384, страница 13 из 16
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Наследование и интерфейсы.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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