powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / c# интерфейсы
70 сообщений из 70, показаны все 3 страниц
c# интерфейсы
    #38051747
bosscs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В одном источнике пишут, что интерфейс не может содержать свойства, в другом - может. Что верно?
И что еще может содержать интерфейс?

А так же подскажите пожалуйста, верна ли следующая строка:?
авторИнтерфейс - это тот же абстрактный класс, который не может иметь свойства и тело функции.

Если нет, напишите, что же все-таки может содержать интерфейс и чем он отличается от абстрактного класса.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38051762
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bosscs,
http://msdn.microsoft.com/ru-ru/library/87d83y5b.aspx
от абстрактного класса в принципе, ни чем, он в байт коде и лежит как абстрактный класс.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38051766
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bosscsчто же все-таки может содержать интерфейс и чем он отличается от абстрактного класса.
В интерфейсе можно объявить (т.е. указать сигнатуры) свойств, методов, событий и индексаторов.
Абстрактный класс может содержать любые члены класса вместе с их реализацией. Разница не ограничивается этим т.к. в C# можно унаследоваться только от одного класса, но реализовать неограниченное кол-во интерфейсов.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38051772
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazile,
на хабре месяц назад видел как парень исполнил множественное наследование из байт кода, сама среда получается
это допускает, а нас выкидывает на уровне компиляции.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38051791
beg-in-er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиbazile,
на хабре месяц назад видел как парень исполнил множественное наследование из байт кода, сама среда получается
это допускает, а нас выкидывает на уровне компиляции.
ну вабщето , если очень надо , то "множественное" наследование можно сделать и в рамках штатных методов.
хотя , да , напрямую, в лоб это сделать низя
...
Рейтинг: 0 / 0
c# интерфейсы
    #38051868
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beg-in-erну вабщето , если очень надо , то "множественное" наследование можно сделать и в рамках штатных методов.
хотя , да , напрямую, в лоб это сделать низя

Можно это продемонстрировать? Подробностей хочется.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38051887
beg-in-er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LexxxxxМожно это продемонстрировать? Подробностей хочется.
ну смотря что вам нужно. только методы унаследовать это одно , а с со всеми погремушками это другое.

приведите пример того , что вы хотите множественно унаследовать. ну типа класс_предок1,2,3 и типа класс наследник.
дабы была полная ясность в данном вапрёсе.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38051894
beg-in-er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexxxxx,

я вообще не понимаю мелкомяхких. чего они убрали возможность множественного наследования.
я понимаю желание свести всё под одну крышу обджекта, но тем не менее.
Попытка возместить потерю Ынтерфейсами - слабая попытка.
В чём жы глобальный цымес отказа?
...
Рейтинг: 0 / 0
c# интерфейсы
    #38051920
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beg-in-erну смотря что вам нужно. только методы унаследовать это одно , а с со всеми погремушками это другое.
приведите пример того , что вы хотите множественно унаследовать. ну типа класс_предок1,2,3 и типа класс наследник.
дабы была полная ясность в данном вапрёсе.

Код: 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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
class Predok_1
    {
        public virtual void MyMethod(int i)
            {
            //...
            }

        public int MyMethod(int i)
            {
            //...
            }
    }

class Predok_2 : Predok_1
    {
        public override void MyMethod(int i)
            {
            //...
            }

        public new int MyMethod(int i)
            {
            //...
            }
    }

class Predok_3 : Predok_1
    {
        public override void MyMethod(int i)
            {
            //...
            }

        public new int MyMethod(int i)
            {
            //...
            }
    }

class Naslednik : Predok_1, Predok_2, Predok_3
    {
        //???
    }



Ну вот как-то так. А что такое со всеми погремушками и чем это отличается от наследования только методов?
...
Рейтинг: 0 / 0
c# интерфейсы
    #38051929
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Небольшая ошибочка в код закралась. Пусть второй MyMethod в классах выглядит как
Код: c#
1.
public int MyMethod(int i1, int i2)
...
Рейтинг: 0 / 0
c# интерфейсы
    #38051931
beg-in-er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LexxxxxНу вот как-то так.
Ну , и где наследник? пустой класс Naslednik - мимо кассы. как вы себе представляете вызов MyMethod в классе Naslednik ??? из какого класса брать? из Predok_1,2 или 3 ?. если брать по порядку, то классы Predok_2 и Predok_3 идут лесом.
я ж просил описать наследника, что вы там хотите вызывать.
Предложенный вариант не отражает ни чего интересного. в нём нет даже смысловой нагрузки , что бы можно было оценить что-то.
к тому же , Predok_1 вызывает ошибку компиляции.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38051935
beg-in-er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LexxxxxНебольшая ошибочка в код закралась.
небольшая ))))
...
Рейтинг: 0 / 0
c# интерфейсы
    #38051937
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beg-in-erНу , и где наследник? пустой класс Naslednik - мимо кассы. как вы себе представляете вызов MyMethod в классе Naslednik ??? из какого класса брать? из Predok_1,2 или 3 ?. если брать по порядку, то классы Predok_2 и Predok_3 идут лесом.
я ж просил описать наследника, что вы там хотите вызывать.
Предложенный вариант не отражает ни чего интересного. в нём нет даже смысловой нагрузки , что бы можно было оценить что-то.

А что откуда брать я хотел у Вас узнать! Ведь это Вы утверждали что множественное наследование это очень нужно и интерфейсы ему не замена. Предложенный вариант и не должен был нести никакой смысловой нагрузки, а вот оценить по нему можно многое! :)

beg-in-erк тому же , Predok_1 вызывает ошибку компиляции.
Да что Вы говорите?! :) Прям ужас какой-то! Я вам больше скажу, там все классы не компилируются! Даже с исправленной сигнатурой второго MyMethod! Но страшного ничего для поставленной задачи в этом нет! :)

Ну так что, как сделать множественное наследование?!
Ну или как Вы его делаете? Поделитесь сокровенным знанием?! :)
...
Рейтинг: 0 / 0
c# интерфейсы
    #38051948
beg-in-er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LexxxxxА что откуда брать я хотел у Вас узнать! пардонте, как мне надо , я так и делаю. Я спросил , что вы хотите от наследника.
Ведь это Вы утверждали что множественное наследование это очень нужно и интерфейсы ему не замена.где я такое говорил. я наоборот не сторонник массового , повсеместного применения ООП, и как одно из его свойств мн. наследование (другое дело , что выбор то не велик) .
а то что интерфейсы не замена. ну так да . как поле перелетит. а реализация методов скозь интерфейсы проходит?

Предложенный вариант и не должен был нести никакой смысловой нагрузкиа почему бы не прицепить?типа класику :машынка, колесо, руль.
ну дайте толковый пример с описанием.

Ну или как Вы его делаете? Поделитесь сокровенным знанием?! :)всё строго в штатных методах. ничего не обычного. только что чуть-чуть "сложнее".
...
Рейтинг: 0 / 0
c# интерфейсы
    #38051953
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beg-in-erLexxxxx,

я вообще не понимаю мелкомяхких. чего они убрали возможность множественного наследования.
я понимаю желание свести всё под одну крышу обджекта, но тем не менее.
Попытка возместить потерю Ынтерфейсами - слабая попытка.
В чём жы глобальный цымес отказа?
А по моему очень даже верно,
Мое имхо, вот в сях процент долюоебов очень низкий, в силу специфики - выделение памяти, ссылки, указатели, STL
там никому в голову не придет написать - class MyAss:Button,List<MyAss>,Thread, а вот если бы разрешили в диезе
тут уровень входа детского сада, и долбоебов процентов семьдесят, что бы было тогда?
Да и сама среда укомплектована на все случаи жизни около 40 000 типов, зачем оно нужно.
Если собираете свой агрегат, отнаследуйтесь от похожего и наворачивайте тюнинг интерфейсами, вполне великолепно смотрится..
зы многие кто пишет не один год даже не знают что такое интерфейс...
...
Рейтинг: 0 / 0
c# интерфейсы
    #38051956
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beg-in-er... а то что интерфейсы не замена. ну так да . как поле перелетит. а реализация методов скозь интерфейсы проходит?..
Простите ничего не понял. Напомнило " На хромой блохе, с того берега моря, которое зайцу не перелететь, орлу не перебежать, хоть море не море, а так лужа посреди города, где тень от блохи на зайца упала и насмерть убила, а из шкуры зайца тулуп вышел и пошел куда глаза глядят. Тут заяц каааак прыгнет…" :)

beg-in-er... а почему бы не прицепить?типа класику :машынка, колесо, руль.
ну дайте толковый пример с описанием...
Ну представьте себе что в каждом из предков кроме указанных мной есть нужные всему человечеству методы СделатьМирВоВсемМире(), ЧтобыНеБылоВойны() и ЧтобыДетиНеПлакали(). Какая собственно разница что в них есть еще, кроме того что я там понаписал?

beg-in-erвсё строго в штатных методах. ничего не обычного. только что чуть-чуть "сложнее".
Ну хоть маленький примерчик можно?!
А что такого дает множественное наследование, что не могут дать интерфейсы?
...
Рейтинг: 0 / 0
c# интерфейсы
    #38051963
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beg-in-erя вообще не понимаю мелкомяхких. чего они убрали возможность множественного наследования.
Чтобы кодирующие обезьянки гавнокод не писали.

beg-in-erПопытка возместить потерю Ынтерфейсами - слабая попытка.
Не путай теплое с мягким. Речь о реализации.

P.S. Малти-наследование нах не уперлось.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38051972
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот мне надо создать мою кнопку , отнаследуюсь ка я от Button
Кнопочки должны добавляться массивом на форму отнаследуюсь ка я от List<MyAss>
кнопочки должны работать в другом потоке,( так модно) Отнаследуюсь ка я от Thread
Че то не фига не получается, пойду ка я на форум, там напишут я скопипасчу.
Что за гове...ый форум, никто не хочет помочь, все дают тынцы на мсдн и литературу - однозначно зажравшиеся дебилы..
...
Рейтинг: 0 / 0
c# интерфейсы
    #38051977
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это все фигня, тут на соседней ветке умудряются вебформс от мувице наследовать )))))
...
Рейтинг: 0 / 0
c# интерфейсы
    #38274129
megazoid007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста, а то что то запутался, недавно начал изучать C#, сейчас читаю книгу Девида Сеппа "Программирование ADO.NET", он пищет: "Можно также воспользоваться интерфейсом IAsyncResult, что бы подождать завершение вызова, выполнив метод IAsyncResult.AsyncWaitHandle.WaitOne." и приводит пример

Код: c#
1.
2.
3.
4.
IAsyncResult iar = cmd.BeginExecuteReader();
while (!iar.IsCompleted){
	iar.AsyncWaitHandle.WaiteOne(3000, true);
}   



до селе я думал что интерфейс существует для того что бы реализовать реальные классы, ну и потом пользоваться этим классами зная что в нем гарантированно реализовано, а у интерфейсов соответственно нельзя вызывать ни методы ни свойства ни пр., но оказывается судя по всему можно вызывать методы у самих интерфейсов, а быть может здесь имеет место неявное приведение типов, в общем объясните пожалуйста что здесь происходить в конце концов у интерфейсов можно вызывать методы или нет?
...
Рейтинг: 0 / 0
c# интерфейсы
    #38274131
Фотография skole
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интерфейсы могут заменять делегаты в некоторых случаях, рано тебе еще об этом думать, читай книжку дальше.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38274535
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
megazoid007, ты путаешь интерфейс с его реализацией. В интерфейсе мы определяем контракт. Экземпляры интерфейса создавать нельзя, но можно создать экземпляр класса реализующий интерефейс и использовать имя интерфейса везде где можно использовать имя класса (имя типа). Например:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
interface ISomething {
    void DoSomething();
}

class Something : ISomething {
    void DoSomething() {
    }
}

void Main()
{
    ISomething smth = new Something();
    smth.DoSomething();
}
...
Рейтинг: 0 / 0
c# интерфейсы
    #38274547
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подведем итоги:

1. Самое основное отличие интерфейса от абстрактного класса (не вдаваясь в полемику о том, как оно генерируется в IL) - это отсутствие реализации у первого и возможность множественного наследования.
2. Множественного наследования в классах - зло, которое никому не нужно.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38274590
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloperМножественного наследования в классах - зло, которое никому не нужно.
Если бы это было злом, то никто бы его не реализовывал. Скорее множественное наследование создает больше проблем чем решает, что сильно повышает требования к мастерству программиста.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38274597
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloper,

к п1 - у интерфейса не может быть полей
...
Рейтинг: 0 / 0
c# интерфейсы
    #38274634
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazileЕсли бы это было злом, то никто бы его не реализовывал.
Это дырка в архитектуре классов, а не проблемы дотнета.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38274644
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloper, я не про .NET говорил, а про ситуацию в целом. Wikipedia утвеждает что существует 14 языков программирования поддерживающих множественное наследование, включая сравнительно недавно созданную Scala. Поэтому я не считаю, что множественное неследование зло. У него есть своя облась применения и поэтому существуют языки которые это поддерживают.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38274879
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazilecooldeveloper, я не про .NET говорил, а про ситуацию в целом.
Ну если говорить обобщенно, то я всё-равно не понимаю, какой профит мы получим, если множественно отнаследуемся от WPF кнопки, ASP.NET грида и мембершипа. Даже википедия не скрывает, что имеет место быть семантическая неопределенность, отсутствие возможности явного многократного наследования от одного класса, порядок наследования изменяет семантику класса. Множественное наследование усиливает проблему наследования конструкторов и последовательностей конструкторов, таким образом создавая проблемы с поддержкой и расширяемостью в этих языках. Объекты в отношениях наследования со значительно отличающимися методами конструирования довольно трудны для реализации в рамках парадигмы последовательности конструкторов.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38274909
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloper,

в реализации COM сервера на с++ множественное наследование (при правильном использовании) может серьёзно уменьшить объём копипаста
...
Рейтинг: 0 / 0
c# интерфейсы
    #38274917
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилcooldeveloper, в реализации COM сервера на с++ множественное наследование (при правильном использовании) может серьёзно уменьшить объём копипаста
Чудесная новость. Как это мне может помочь?
...
Рейтинг: 0 / 0
c# интерфейсы
    #38274922
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloper,

множественное наследование не является абсолютным злом.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38274929
Фотография Абсолют
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beg-in-erну вабщето , если очень надо , то "множественное" наследование можно сделать и в рамках штатных методов.

С этого места поподробней. Как штатными способами сделать множественное наследование?
...
Рейтинг: 0 / 0
c# интерфейсы
    #38274931
Фотография Абсолют
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beg-in-erя вообще не понимаю мелкомяхких. чего они убрали возможность множественного наследования.

Что помимо C# знаете?
...
Рейтинг: 0 / 0
c# интерфейсы
    #38274947
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилмножественное наследование не является абсолютным злом.
Абсолютным - возможно.

Абсолютbeg-in-erну вабщето , если очень надо , то "множественное" наследование можно сделать и в рамках штатных методов.
С этого места поподробней. Как штатными способами сделать множественное наследование?
Я тоже с beg-in-er поржал Сначала ляпнул какую-то глупость, потом начал говорить, что мол вы некорретно задачу ставите.

...beg-in-erLexxxxxМожно это продемонстрировать? Подробностей хочется.
ну смотря что вам нужно. только методы унаследовать это одно , а с со всеми погремушками это другое.
Цирк.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38274988
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилcooldeveloper,

к п1 - у интерфейса не может быть полейРаз уж теперь стало круто хвастаться детсадовскими знаниями, то добавлю: и событий.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275007
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloperbazileЕсли бы это было злом, то никто бы его не реализовывал.
Это дырка в архитектуре классов, а не проблемы дотнета.
Дырка в виде базового objectа,))
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275020
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyдобавлю: и событий.
События в интерфейсе можно объявлять.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275023
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиДырка в виде базового objectа,))
это только одна из неприятностей.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275032
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazileAntonariyдобавлю: и событий.
События в интерфейсе можно объявлять.И правда. Раньше было нельзя.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275066
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariybazileпропущено...

События в интерфейсе можно объявлять.И правда. Раньше было нельзя.
и раньше можно было
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275077
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy, опять обосрался
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275092
beg-in-er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloper,

МСУ, ну что там со смехом, всё исчё продолжается?
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275101
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pationAntonariyпропущено...
И правда. Раньше было нельзя.
и раньше можно былоДля меня раньше это до дотнета.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275105
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloperНу если говорить обобщенно, то я всё-равно не понимаю, какой профит мы получим, если множественно отнаследуемся от WPF кнопки, ASP.NET грида и мембершипа.
Аналогичным образом можно и одиночное наследование довести до абсурда унаследовав, например, класс DatabaseConnection от TreeView. Профит же всегда один - упрощение кода. Изопропил привел тебе пример.

cooldeveloperИзопропилcooldeveloper, в реализации COM сервера на с++ множественное наследование (при правильном использовании) может серьёзно уменьшить объём копипаста
Чудесная новость. Как это мне может помочь?
Изопропил привел пример опровергающий твое утверждение что "множественное наследование - никому не нужное зло". Есть ситуации когда оно помогает, но так их не так много и кроме того порождает проблемы, то чаще всего им не пользуются.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275111
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloperAntonariy, опять обосрался
Зачем такое писать? Чем это помогает текущей дискуссии? Ты сам никогда не ошибался?
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275112
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloperAntonariy, опять обосрался А муся опять в это вступил и оттирается в бане Так и не научился, что его нужно обходить, а не обмазываться им.

Когда карту починишь, горе-орхетегтор?
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275119
Фотография Абсолют
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beg-in-ercooldeveloper,

МСУ, ну что там со смехом, всё исчё продолжается?

На мой вопрос ответ-то будет?
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275125
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beg-in-erМСУ, ну что там со смехом, всё исчё продолжается?
Ты нам когда покажешь обещанное множественное наследование в рамках штатных методов ?

bazileАналогичным образом можно и одиночное наследование довести до абсурда унаследовав, например, класс DatabaseConnection от TreeView. Профит же всегда один - упрощение кода. Изопропил привел тебе пример.
Единичное наследование не может быть доведено до абсурда, ибо в нашем black box четко реализуется single responsibility principle. Никаких двойственных трактований. Есди ты унаследовался от TreeView, значит ты получил функционал TreeView и ничего другого. А как ты назовешь свой корабль, DatabaseConnection или DotnetMustDie - никого не волнует. Ты получил то, от чего отнаследовался.

[quot bazileИзопропил привел пример опровергающий твое утверждение что "множественное наследование - никому не нужное зло". Есть ситуации когда оно помогает, но так их не так много и кроме того порождает проблемы, то чаще всего им не пользуются.[/quot]
А я привел пример, что помимо так называемой "помощи" если еще и непомерное зло. Зачем нам хаос в дотнете?
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275126
beg-in-er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АбсолютНа мой вопрос ответ-то будет?

ради экперимента предположим, что кроме шарпа ничего не знаю. каков будет выпад, какую эскападу ожидать в свой адрес?
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275128
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariycooldeveloperAntonariy, опять обосрался А муся опять в это вступил и оттирается в бане Так и не научился, что его нужно обходить, а не обмазываться им.

Когда карту починишь, горе-орхетегтор?

Antonariy, иди ООП учи. А потом мы с тобой про карту поговорим
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275132
Фотография Абсолют
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beg-in-erради экперимента предположим, что кроме шарпа ничего не знаю. каков будет выпад, какую эскападу ожидать в свой адрес?

Никакого выпада.

Меня интересовал больше вопрос: Как штатными способами сделать множественное наследование?

Если, что он был первым.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275147
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloperА потом мы с тобой про карту поговорим Не получится. Теперь при любом упоминании о твоем саете я буду падать под стол от смеха )

Покажи еще какие-нибудь свои прожэкты. Петросян уже не торт, но твои поделки достойны его памяти.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275150
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АбсолютМеня интересовал больше вопрос: Как штатными способами сделать множественное наследование?Нечто похожее можно получить композицией.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275161
Фотография Абсолют
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КАбсолютМеня интересовал больше вопрос: Как штатными способами сделать множественное наследование?Нечто похожее можно получить композицией.
Нечто похожее? :)

Но на самом деле хочу видеть ответа именно от "beg-in-er"
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275164
Фотография Абсолют
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

Ой, да ладно. Опечатки - с кем не бывает :)
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275172
megazoid007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazile и использовать имя интерфейса везде где можно использовать имя класса (имя типа).
Т.е. я правильно понял, что можно присвоить переменной типа интерфейса ссылку на класс реализующийся через этот интерфейс, и потом обращаться к классу через интерфейсную переменную?
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275177
Фотография Абсолют
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
megazoid007bazile и использовать имя интерфейса везде где можно использовать имя класса (имя типа).
Т.е. я правильно понял, что можно присвоить переменной типа интерфейса ссылку на класс реализующийся через этот интерфейс, и потом обращаться к классу через интерфейсную переменную?


Код: c#
1.
2.
3.
4.
5.
IList<string> someList = new List<string>();

/*Как видишь, someList является IList<>, т.е. интерфейсом, и на данном моменте доступны его методы и методы, которые он унаследовал от других интерфейсов, к примеру ICollection<>*/

someList.Add("Wibbly Wobbly Timey Wimey...Stuff");
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275181
Фотография Абсолют
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправка к моему предыдущем ответу:

Проперти, т.е. get/set тоже доступны. Т.е. доступно все то, что объявлено в интерфейсе.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275213
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
megazoid007Т.е. я правильно понял, что можно присвоить переменной типа интерфейса ссылку на класс реализующийся через этот интерфейс, и потом обращаться к классу через интерфейсную переменную?
Да. При этом тебе будут доступны все члены этого интерефейса включающая его базовые интерфейсы.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275253
megazoid007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Абсолют, bazile, все понятно спасибо большое
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275277
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariycooldeveloperА потом мы с тобой про карту поговорим Не получится. Теперь при любом упоминании о твоем саете я буду падать под стол от смеха )
Падать не надо, лучше сразу убейся об стену.

AntonariyПокажи еще какие-нибудь свои прожэкты. Петросян уже не торт, но твои поделки достойны его памяти.
Это не проблема, это опечатка. Непонимание ООП, языка и предметики - это проблема. Назовем это просто ламерством.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275321
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloperЭто не проблема, это опечатка.Проблема, что что тебя нужно ткнуть носом, чтобы ты заметил свои опечатки. Сколько месяцев висит это позорище?
cooldeveloperНепонимание ООП, языка и предметики - это проблема. Назовем это просто ламерством.Понимание ООП, языка и предметики не помешало тебе наговнокодить ссылку, ведущую вон из интернетов. Вот это настоящее ламерство.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275408
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloperЕдиничное наследование не может быть доведено до абсурда, ибо в нашем black box четко реализуется single responsibility principle. Никаких двойственных трактований. Есди ты унаследовался от TreeView, значит ты получил функционал TreeView и ничего другого. А как ты назовешь свой корабль, DatabaseConnection или DotnetMustDie - никого не волнует. Ты получил то, от чего отнаследовался.
То же верно и для множественного наследования. При грамотно выстроенной иерархии принцип single responsibility не будет нарушен. Все упирается в квалификацию программиста. Сам видел примеры когда одиночное наследование использовали неверно, а именно выбирали неподходящий базовый класс, меняли поведение переопределенного метода нарушая контракт класса и т.п.

cooldeveloperА я привел пример, что помимо так называемой "помощи" если еще и непомерное зло. Зачем нам хаос в дотнете?
Я говорил только о множественном наследовании в общем смысле, а не о его нужности/ненужности в .NET. Но если интересно мое мнение, то отсутствие в .NET множественного наследования - благо.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275443
Фотография Абсолют
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот\'с ап, "бегинер"? Штатные средства отвалились? План по захвату мира рухнул, когда не смог поунаследовать три класса в один?
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275447
beg-in-er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АбсолютВот\'с ап, "бегинер"? Штатные средства отвалились? План по захвату мира рухнул, когда не смог поунаследовать три класса в один?

Чесно говоря планы никуда не делись. тогда , когда я писал полгода назад , мне виделось необходимость множественного наследования. но толи я плохо искал эту необходимость , толи не особо старался , но как то не нашёл явную необходимость применения множественного наследования.

вон и
bazile то отсутствие в .NET множественного наследования - благо.
тоже имеет сказать по поводу необходимости.

по потому я пока придержу свои мысли. не хочу блистать говнокодом до тех пор , пока не буду уверен в его необходимости.
но сегодня-завтра у меня есть свободное время, я покумекую над данным вопросом.

Абсолют, а что ты ожидаешь от множественного наследования в .Net? какой профит от его применения?
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275455
Фотография Абсолют
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beg-in-er,

Я? Ничего не ожидаю. Мне оно не нужно. Абсолютно.

Небольшой секрет еще раскрою, что я вообще с плюсов пришел в C#, давным-давно. Просто был удивлен заявлению, что штатными средствами можно сделать такое наследование в C#. Вот и поинтересовался.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275503
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariycooldeveloperЭто не проблема, это опечатка.Проблема, что что тебя нужно ткнуть носом, чтобы ты заметил свои опечатки.
Проблема в том, что мне твои тыканья носом в мои опечатки, абсолютно фиолетовы. Это не дырка в безопасности, это не сбой функционала, это не фееричное незнание базовых механизмов ООП (как в твоем ламерском случае). Это тупо опечатка, фиг бы с ней.

AntonariyСколько месяцев висит это позорище?
Как буду что-то новое прикручивать или обновлять, так поправлю. Пока это позорище мне и пользователям ресурса не мешает жить.

AntonariyПонимание ООП, языка и предметики не помешало тебе наговнокодить ссылку, ведущую вон из интернетов. Вот это настоящее ламерство.
Твоя очередная дурость с интерфейсами просто затмила здравый рассудок. Ты опять лег ниже плинтуса.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275516
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazileТо же верно и для множественного наследования. При грамотно выстроенной иерархии принцип single responsibility не будет нарушен.
Множественное наследования априори перечеркивает этот принцип на корню вне зависимости от правильности иерархии, ибо класс или модуль должны иметь одну и только одну причину измениться.

bazileВсе упирается в квалификацию программиста.
Ну так мы можем скатиться до, в принципе, любого кода. При наличии скиллов можно и с goto прекрасно работать. Только качественным решение уже не назовешь.

bazileЯ говорил только о множественном наследовании в общем смысле, а не о его нужности/ненужности в .NET. Но если интересно мое мнение, то отсутствие в .NET множественного наследования - благо.
Множественное наследование многими критикуется не только в разрезе дотнета. На счет блага согласен.
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275560
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloperТолько качественным решение уже не назовешь
скажи это тем, кто на Fortran IV пишет
...
Рейтинг: 0 / 0
c# интерфейсы
    #38275588
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилcooldeveloperТолько качественным решение уже не назовешь
скажи это тем, кто на Fortran IV пишет
Они все вымерли, а молодежь перешла на фортран 90, в котором уже можно было без goto кодировать :)
...
Рейтинг: 0 / 0
70 сообщений из 70, показаны все 3 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / c# интерфейсы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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