Интерфейсы C# (Interface) - Учим Шарп #13

  Рет қаралды 51,865

CODE BLOG

CODE BLOG

Күн бұрын

Пікірлер: 81
@CODEBLOG
@CODEBLOG 6 жыл бұрын
На этом занятии мы узнаем, что такое интерфейс (interface) в языке программирования C#, научимся их реализовывать (имплементировать) явно и неявно. Узнаем основные отличия интерфейсов и абстрактных классов.
@HeIvis
@HeIvis 2 жыл бұрын
CODE BLOG, не подскажешь. Удобно ли будет на ноутбуке маке разрабатывать под виндовс?
@melkey_poc
@melkey_poc 6 ай бұрын
Прошло 5 лет, кое что поменялось и в мире и в самом c#, но видео все еще актуально и полезно. Спасибо автору огромное!
@ВсеволодЗорин-л6н
@ВсеволодЗорин-л6н 6 жыл бұрын
Благодарю. Помогло заполнить некие пробелы.
@OnikMod
@OnikMod 4 жыл бұрын
Очень круто. Большое спасибо. После двух предыдущих тем эта зашла как по маслу)))
@victordar7066
@victordar7066 5 жыл бұрын
Спасибо за уроки. Они великолепны =)
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Всегда пожалуйста )
@РайМахровский
@РайМахровский 2 жыл бұрын
Мега полезный видеоурок, всё очень понятно, спасибо!
@dizzyark9221
@dizzyark9221 5 жыл бұрын
Вадим просто шикарное пояснение многие вещи стали понятны. Есть вопрос за видимость классов, переменных. Абсолютно понятен принцип считать всех идиотами, но при этом все те же переменные мы же прописываем сами. У пользователя нет доступа к переменным и нет возможности запросить что то публичное если мы это не указывали. Что то этот момент для чего используются приватные вещи я не понимаю. Не затруднит Вас просветить этот момент
@NeizBest
@NeizBest 4 жыл бұрын
Для удобства написания кода в том числе. Если какая-то переменная доступна, её можно будет выбрать в выпадающем списке. Когда у тебя будет большой проект с большим количеством кода - не мудрено будет что-то перепутать. Может ещё какие-то причины есть, но тут я не знаю, сам новичок)
@dizzyark9221
@dizzyark9221 4 жыл бұрын
@@NeizBest удобство в работе понятно но здесь идёт вопрос безопасности а вот здесь я как раз и не понимаю
@GenkaKorobkin
@GenkaKorobkin 4 жыл бұрын
Отличные уроки, большое спасибо за ваш труд!
@phat80
@phat80 4 жыл бұрын
Ну не знаю, чел часто путает понятия. Даже когда вроде сначала говорит правильно, что например, интерфейсы не наследуются. Далее сам начинает говорить, что тот или иной класс наследуется от интерфейса. Список называет массивом, хотя это совершенно разные понятия. В общем, считаю, что если берешься учить, будь добр, знай предмет на 5 с плюсом. А так получается каждый второй разработчик уже учить лезет, хотя у самого знания далеко не идеальные. Поэтому они только путают тех, кто пытается учить. Потом у людей вопросы, а почему их завалили на собеседовании, ведь они честно отсмотрели тот или иной курс и все запомнили. А оказывается, что большинство курсов записывают вообще не профессионалы, а те, кто сам только вчера тему изучил. Даже какая-то оговорка может отложиться в голове ученика, поэтому надо следить, чтобы даже оговорок никаких не было. Ну или хотя бы делать пометки в видео потом, как делают те, кто все-таки чувствует какую-то ответственность.
@cartoonshow272
@cartoonshow272 4 жыл бұрын
Как всегда отличный урок. Спасибо огромное за уроки!
@Flett-t7u
@Flett-t7u Жыл бұрын
Спасибо вам за ваши уроки
@ВалерийВаланчус
@ВалерийВаланчус 4 жыл бұрын
Этот ролик у вас получился лучше и проще чем CLR via C# глава 13 .
@CODEBLOG
@CODEBLOG 4 жыл бұрын
так в том и смысл, что этот ролик для начинающих, а clr via c# более сложный )
@ВалерийВаланчус
@ВалерийВаланчус 4 жыл бұрын
Вчера я уснул на этом ролике , когда проснулся он еще шел и шел . Я интелектуальнно буксую от таково объема информации .
@TheKovalAndrey
@TheKovalAndrey 2 жыл бұрын
@@ВалерийВаланчус я тоже уснул и во сне изучил exception, delegate
@vusalaliyev9955
@vusalaliyev9955 2 жыл бұрын
Красавчик других слов нет
@pssp4450
@pssp4450 4 жыл бұрын
Вопрос по наследованию и реализации интерфейсов 25:19 как я понял это наследование интерфейса, верно? 32:10 а тут реализация? из-за того что класс "наследует" более одного интерфейса это называется реализацией? или же наследование и реализация для интерфейса это одно и тоже? (суть не в сехе работы, а как что называют), а когда интерфейсов больше одного то это уже множественное реализация?
@abdusamadjuraev2615
@abdusamadjuraev2615 4 жыл бұрын
да более 2 наследований называется реализацией!!
@CODEBLOG
@CODEBLOG 4 жыл бұрын
На самом деле здесь просто не совсем правильно говорить про наследование интерфейсов. Наследование подразумевает, что ты получаешь логику из предка, а интерфейс не содержит логики. Поэтому корректнее говорить про реализацию интерфейса. Когда ты реализуешь интерфейс ты всего лишь говоришь, что в классе есть такие же члены, как объявленные в интерфейсе. но напрямую интерфейс и класс его реализующий не связаны, интерфейс не передает в класс логику
@ВалерийВаланчус
@ВалерийВаланчус 4 жыл бұрын
За болванку вам отдельное спасибо .
@eugenekrutoy1475
@eugenekrutoy1475 4 жыл бұрын
Большое спасибо! Огромное просто!
@NeizBest
@NeizBest 4 жыл бұрын
26:15... Каким сочетанием клавиш это было сделано? (Автоматическая реализация интерфейса в классе) Или это чисто фишка VS, которую в других средах не найти? ПС, спасибо за урок, всё было неплохо) На этот раз было проще уловить, а точнее, здесь мало элементов C# затронуто, и незнакомых лично для меня вообще не было.
@yanas2226
@yanas2226 2 жыл бұрын
2 года прошло, узнал ответ на свой вопрос?
@TheFryOS
@TheFryOS 5 жыл бұрын
в 5:27 начало. Автору Спасибо.
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Всегда пожалуйста )
@evgeniyt.2858
@evgeniyt.2858 Жыл бұрын
Можно представить интерфейс как некий контракт который обязаны исполнить все наследующие этот интерфейс классы. И этот же контракт будут использовать клиенты (имеется в виду, например, другие классы) при работе с этим классом.
@ВалерийВаланчус
@ВалерийВаланчус 4 жыл бұрын
В интерфейс можно как-нибудь поместить в объект управления со свойствам второй формы чтобы к нему получить доступ из первой формы или нет ?
@CODEBLOG
@CODEBLOG 4 жыл бұрын
можно связать формы через события или можно создать коллекцию форм и обращаться из одной в другую
@ВалерийВаланчус
@ВалерийВаланчус 4 жыл бұрын
Менять только свойства второй формы из первой через ее объект можно легко поменять его в событии - одним кликом очень легко . А менять свойства объектов которые находятся на второй форме - трудно , они недоступны из первой формы .
@ВалерийВаланчус
@ВалерийВаланчус 4 жыл бұрын
Если два одинаковых свойства связанные одним интерфейсом разных классов , то получив значения первое свойства передаст это значение во второй класс на второе свойства ? У интерфейсов есть объекты ? Я их только-только учу .
@MikhailPavliuchkov
@MikhailPavliuchkov 4 жыл бұрын
24:55 //// //// Выполнить перемещение. //// //// Расстояние. //// Время движения. Что это?
@f0xeri
@f0xeri 4 жыл бұрын
комментарий
@NadolskyiDeniS
@NadolskyiDeniS 4 жыл бұрын
Комментарий - полное описание метода
@Venustaz
@Venustaz 3 жыл бұрын
К комментаторам выше. Данная схема, т.е. полное описание метода (или другого), будет так же формировать всплывающую подсказку в VS, если ты где-то захочешь вызвать этот метод. Это особенно заметно при использовании методов стандартной библиотеки, только начинаешь писать, а там уже написана подсказка, что метод делает, какие параметры что обозначают.
@ВалерийВаланчус
@ВалерийВаланчус 4 жыл бұрын
Имплементация метода и его интерфейса похожа на простое описание метода этот метод будет и так доступен без интерфейса из объекта этого класса не понимаю в чем здесь фишка ? Может этот метод реализуется водном классе , доступен будет где наследуется этот интерфейс пусть из пустого класса ?
@CODEBLOG
@CODEBLOG 4 жыл бұрын
фишка в полиморфизме. Следующий ролик будет как раз с демонстрацией практического применения интерфейсов
@ВалерийВаланчус
@ВалерийВаланчус 4 жыл бұрын
Жду с нетерпением . Тупо переписал ваш этот проект из этого ролика сейчас пытаюсь понять принцип работы интерфейса . У вас ролики избыточно длинные трудно перекопировать проект , но все-таки интересно .
@I-PixALbI4-I
@I-PixALbI4-I 4 жыл бұрын
Надо бы обновить информацию, интерфейсы теперь поддерживают реализацию )
@ivanomelchenko1995
@ivanomelchenko1995 3 жыл бұрын
спасибо за стримм
@JointJaBa
@JointJaBa 4 жыл бұрын
Вопрос, можно ли (а если можно, то как) у свойств интерфейса и у классов, которые унаследовали этот интерфейс, быть разные уровни доступа, например у интерфейса есть свойство T, а у класса наследника будет свойство protected T?
@Shikinev_2
@Shikinev_2 4 жыл бұрын
17:24 C версии c# 8 можно задавать модификаторы доступа перед методом
@phat80
@phat80 4 жыл бұрын
Это видео записано до выхода версии 8, неужели вы этого не видите?
@vladportnov3041
@vladportnov3041 3 жыл бұрын
@@phat80 человек просто проинформировал, в чем проблема?
@ВалерийВаланчус
@ВалерийВаланчус 4 жыл бұрын
Как вообще осуществляется спонсирование ? Я нажимаю кнопку "Спонсировать" . Деньги откуда снимаются с какого счета ? Наверно с того , куда я плачу за доступ в интернет через платежное агентство ? И как потом прервать перечисления ? Дайте подробную инструктцию . Может один-два месяца можно проспонсировать .
@CODEBLOG
@CODEBLOG 4 жыл бұрын
По идее при первом платеже у тебя должно попросить ввести данные карты. потом каждый месяц будет списываться сумма. Отказаться можно в любой момент в профиле KZbin. Там должна быть кнопка что-то вроде "покупки и спонсорство". Там полный список всех спонсируемых каналов и способ оплаты. можно отключиться там
@jeb_7749
@jeb_7749 4 жыл бұрын
54:30 А что мешает так же сделать с классами?
@vanya21826
@vanya21826 5 жыл бұрын
Домашнее задание:ОТВЕТ: interface IMyInterface { int Number { get; } void Show(); } interface IMyInterfaceTwo : IMyInterface { void First(); } class Program : IMyInterfaceTwo { public int Number { get { return 0; } } public void Show() { } public void First() { } static void Main() { } }
@sashkosashok
@sashkosashok 5 жыл бұрын
Нормально, где-то тут я остановился в прошлый раз.
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Успехов в продолжении изучения )
@Venustaz
@Venustaz 3 жыл бұрын
После вопроса об одновременном наследовании класса и реализации интерфейса (или интерфейсов) возник вопрос: Что если в классе-родителе, каким-то магическим образом содержится метод, идентичный по сигнатуре методу, определенному в интерфейсе, но при этом класс-родитель, не реализует интерфейс (который нужно реализовать в классе-наследнике). А что если класс родитель реализует интерфейс, который так-же необходимо реализовать классом-наследником.
@Ислам-э9х3х
@Ислам-э9х3х 3 жыл бұрын
это несложно проверить, но кажется что все должно быть ок, в классе наследнике же реализуется метод для интерфейса через наследование
@Баюн_____________123
@Баюн_____________123 4 жыл бұрын
Вместо интерфейса можно использовать абстрактный класс?
@CODEBLOG
@CODEBLOG 4 жыл бұрын
Можно, но не всегда это разумно
@stan5214
@stan5214 5 жыл бұрын
Для наглядности можно реализовать интерфейсы IRace и IDecay. Первый для лады, 2й для БМВ :-P
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Ты что, тебя любители Приор загрызут )))
@vladoss4643
@vladoss4643 2 жыл бұрын
Вопрос. А зачем тогда нужны абстрактные классы, если мы все можем через интерфейсы реализовать?
@BrownAleks
@BrownAleks Жыл бұрын
Если есть какие либо реализации или поля в интерфейсе, то все они в производных классах будут статичные. А реализации и поля унаследованные от абстрактных классов, для каждого производного экземпляра будет своя версия состояния.
@АртемНиколаевич-о7п
@АртемНиколаевич-о7п Жыл бұрын
Разные смысловые функции. На один класс можно кинуть несколько интерфейсов.
@paveldukov
@paveldukov 6 жыл бұрын
большое спасибо
@andreyvolkov3117
@andreyvolkov3117 4 жыл бұрын
1:02:00 (или как-то так) А в С++ есть же abstract и virtual, который по сути делает множественное наследование классов удобнее, ведь не нужно разделять на классы и интерфейсы, можно просто фигачить. (если я правильно помню)
@processing17
@processing17 Жыл бұрын
Это и в с# тоже есть вроде
@dmytropetkevych8588
@dmytropetkevych8588 4 жыл бұрын
У меня при неявной реализации Move() выдает ошибку и просит явную реализацию для каждого интерфейса
@imbackinussr8991
@imbackinussr8991 10 ай бұрын
А как сделать так, чтобы сразу в Solution Explorer показывал ошибку, в смысле подчеркивалось красным. Кто знает, ответьте пожалуйста
@mikeistp5736
@mikeistp5736 5 жыл бұрын
Вот тут ещё есть хорошее пояснение этой же темы, если кому ещё не понятно: kzbin.info/www/bejne/fILJYmehn517rbc А так то зачёт автору! столько всего и на халяву рассказывает.
@cors1k495
@cors1k495 5 жыл бұрын
спасибо
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Всегда пожалуйста )
@yriktop5756
@yriktop5756 4 жыл бұрын
12:00:00
@juliusmalkov9620
@juliusmalkov9620 6 жыл бұрын
почему так мало лаек?! ленивые подписчики!!!
@yriktop5756
@yriktop5756 4 жыл бұрын
Кто за шарп комент:шарп. Кто за c++ коммент c++.
@Хибрен
@Хибрен 3 жыл бұрын
Aboba
@HingalshDealer
@HingalshDealer 2 жыл бұрын
smotryu na skorosti 1.5x hihi
@veerit3822
@veerit3822 3 жыл бұрын
за 100к побреешься налысо?
@revitmepsuhovich8668
@revitmepsuhovich8668 6 жыл бұрын
зАЧЕМ ТАК ДОЛГО???
@Sergioshe
@Sergioshe 4 жыл бұрын
Спасибо
Исключения (Exception) в C# - Учим Шарп #14
1:07:33
Don’t Choose The Wrong Box 😱
00:41
Topper Guild
Рет қаралды 62 МЛН
She made herself an ear of corn from his marmalade candies🌽🌽🌽
00:38
Valja & Maxim Family
Рет қаралды 18 МЛН
Enceinte et en Bazard: Les Chroniques du Nettoyage ! 🚽✨
00:21
Two More French
Рет қаралды 42 МЛН
VIP ACCESS
00:47
Natan por Aí
Рет қаралды 30 МЛН
CLR via C#. Глава 14. Символы char C#
13:07
CODE BLOG
Рет қаралды 18 М.
AI Is Making You An Illiterate Programmer
27:22
ThePrimeTime
Рет қаралды 251 М.
Don’t Choose The Wrong Box 😱
00:41
Topper Guild
Рет қаралды 62 МЛН