C# ФУНКЦИИ И МЕТОДЫ | МЕТОД C# ЧТО ЭТО | ФУНКЦИИ C# ПРИМЕР | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | # 35
В этом уроке мы приступим к изучению методов и функций в языке программирования C#, выясним что такое методы и функции в си шарп, для чего они нужны и как их использовать.
✅ ИСХОДНЫЙ КОД УРОКА bit.ly/2JlKpb0
✅ ДОМАШНЕЕ ЗАДАНИЕ bit.ly/2JlQLax
✅Если вам нравятся мои уроки, вы хотите поддержать меня и развитие канала, то можете сделать это тут!=)
✅Доступ к исходному коду и спонсорство / simplecode
✅ donatepay.ru/don/SimpleCode
✅BTC кошелек: 12oYfJnvt76wjJbpvfhM41m6KPz6uz4LD4
✅ Telegram канал t.me/SergeySimpleCode
Уроки по программированию
✅Наша группа ВК smplcode
✅Подписывайтесь на канал / @simplecodeit
#сишарп #simplecode
Пікірлер: 196
Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =) ✅Доступ к исходному коду и спонсорство www.patreon.com/SimpleCode ✅ donatepay.ru/don/SimpleCode ✅BTC кошелек: 12oYfJnvt76wjJbpvfhM41m6KPz6uz4LD4
@nadegify
4 жыл бұрын
подскажите, принципы работы с API (напр. Autocad .NET API) в дальнейших уроках планируете осветить ?? Очень бы хотелось!
@_moonbeam4564
4 жыл бұрын
@@nadegify или Unity
@montdesign
4 жыл бұрын
Спасибо!
@montdesign
4 жыл бұрын
@@nadegify Присоединяюсь, очень интересная тема!
@user-mr6xr9zp2n
4 жыл бұрын
Вы оговорились, в c++ можно вызвать метод, который объявлен и определен ниже вызова. Скорее всего это связано с внешней линковкой методов.
Хах, поступил на компьютерные науки в этом году, у кого не спрашиваю, все говорят: "Я по ютубу учу, там канал есть #SimpleCode", ты ведёшь целое поколение!)
@Witchfinder_General
3 жыл бұрын
На ютубе лучше чем в университетах, позор один, а не университеты и пустая трата времени, а ещё сил и нервов, если бы туда толпа не валила ради корочки, они бы может задумались о качестве обучения.
@mkagaming7925
3 жыл бұрын
@@Witchfinder_General отучился вот почти первый семестр, пока с тобой полностью согласен. Всё, что я выучил по программированию - я выучил самостоятельно, а высшая математика в таком объёме и куча других не особо нужных предметов как бы не были мне сильно важны)
@Randomuserb249
3 жыл бұрын
@@mkagaming7925 тоже 1 семестр,ставлю жирный плюс
@mkagaming7925
3 жыл бұрын
@@alazarnfreeman9216 Ну нужна больше дискрктная математика как по мне. Не знаю где мне могут пригодится тройные интегралы в программировании
@askolit1458
2 жыл бұрын
@@alazarnfreeman9216 ну не знаю, что-то я не уверен, что в Дуров знает математику на очень высоком уровне. Хоть и высот, как можно заметить, он добился. Он вообще филологический окончил. Мой университетский препод тоже очень хорошо знает математику, но он преподаватель(можно ли это считать достижением?)
Самый лучший канал по программированию Жаль только, что уроки выходят так редко.
@Sokkez
3 жыл бұрын
Нельзя торопить шедевры :-)
@user-eq1bl3xt5c
3 жыл бұрын
хорошего по не многу
@silasamuraya9982
2 жыл бұрын
а ты стань спонсором,чаще будет
@ukrainesov21
2 жыл бұрын
В этом преимущество позднего просмотра уроков - через 2 года. Все уроки уже опубликованы и ждать нет необходимости 😄👍
@user-ql6rp7oc8h
Жыл бұрын
как успехи через два года?
Как всегда на высоте, жаль что такие уроки мало-популярные.
Спасибо Сергей за ваши уроки! Это лучшие уроки, которые можно найти на рунете. Именно благодаря вам, я знаю Си++ и теперь буду знать С#. Огромное вам спасибо!
Чем дальше, тем интереснее. А главное понятно. Смотрится как какой-нибудь сериал)) Спасибо за уроки!!
2 домашку за меня сделал ide xD. Только начал метод писать, он сразу понял, что я хочу от него и через таб чуть ли не весь код написал)
Сергей как всегда очень полезное и занимательное видео благодаря которому мы все еще на один шаг продвинулись в изучении языка Си шарп, и все это благодаря вам. ОГРОМНОЕ СПАСИБО ПРОДОЛЖАЙТЕ В ТОМ ЖЕ ДУХЕ!!!
Сергей огромное вам спасибо ,что уделяете своё время на создание подобного контента. Вы лучший!
Привет всем, предлагаю небольшую практику после того как вы сделаете домашние задания в конце данного урока: 1) Метод с указателем void замените на метод с определенным типом данных и return 2) Метод с return попробуйте заменить на метод с указателем void Предлагайте свои практические задания, спасибо!
@coutiaraZZ
Жыл бұрын
как успехи с програмированием?
@IThing1
Жыл бұрын
@@coutiaraZZ s kaifom
@user-yk5gz8kc3e
Жыл бұрын
@@coutiaraZZ норм)))
Самый топовый канал в обучение начинающих программистов
Спасибо что делитесь своим знанием
Спасибо за урок👏
Спасибо! Интересное ДЗ, с удовольствием сделал.
Первым поблагодарю за очередной выпуск)
Спасибо Вам за такие чёткие уроки!
Мне очень нравится ваш подход. Когда вы объясняете зачем это, почему так работает. Многие вещи наприер static понял только из ваших видео, хотя до этого много смотрел подобных, правда конечно по другим языкам...)
Очень доходчиво, спасибо!
Сергей, ты - лучший!
Привет Серж. Урок супер!
новое отличное видео, спасибо!
Не знаю что бы я делал без вашего канала, чуть какой-то вопрос по обучений сразу сюда, и все ответы есть, все понятно и подробно, спасибо!
Продолжай в том же духе, ты очень классно рассказываешь, всё супер. Главное не унывай никогда и знай, что ты занимаешься реально полезным делом, красавчик!
23:23 - Небольшая ремарка: в классах C++ методы так же могут быть расположены уже после других методов, которые их используют. А в C# абсолютно все функции - это методы, так что логика одна и та же.
Да. Рвется шаблон после плюсов ). Спасибо за урок Сергей!
Вот и до подпрограмм дошли! Скорее бы ООП! ПРодолжай!
Спасибо за урок!
Твои видео вдохновляют изучение c#
Что же, великолепное видео где 2-3 дня буду вникать, замечательно, в самом деле
Спасибо! Надеюсь, у Вас все хорошо сейчас.
спасибо за урок)
Большое спасибо!
Спасибо Вам огромное Сергей) , куда Вы пропали все ли хорошо с Вами? Надеюсь что да. Наверное один из самых луших каналов что я встречал!
да.., если бы уроки выходили почаще!!! Благодарю
Подача материала огонь!!!
купил подписку на ITVDN и разочаровался. Но нашел Ваш канал и все стало понятно! Спасибо за труд. Ждем больше уроков и кликаем на все рекламы)
Благодарю за урок.
це одне з кращих пояснень в мережі, дякую
Спасибо!!)
Спасибо большое за видео))
Приветствую тебя, Сергей! Спасибо за уроки! А уроки по .NET Core будут?
@SimpleCodeIT
4 жыл бұрын
будут
@Kleolit
Жыл бұрын
@@SimpleCodeIT 🙂
Комментарий выражающий благодарность за труд
первое из двух заданий написал вот так: (работает) позже гляну разбор данного дз. static void String_1() { Console.WriteLine("Введите символ"); string a = Console.ReadLine(); Console.WriteLine("кол-во элементов в строке"); int amount = int.Parse(Console.ReadLine()); string[] myArray = new string[amount]; for (int i = 0; i { myArray[i] = a; Console.Write(myArray[i] + " "); } } P.S. Спасибо большее за уроки
@Sladzhi
3 жыл бұрын
class Program { static void press1() //текст сообещения о вводе { Console.Write("Введите какой символ вывести: "); } static void press2() //текст сообщения о том, что вводить { Console.Write("Введите сколько символов нужно ввести: "); } static string What(string Chars, int HowMony) //решение самой задачки { return string.Concat(Enumerable.Repeat(Chars, HowMony)); //в данном случае, мы повторяем символ столько раз, сколько задаст юзер } static void Result(string result)//результат всего действия { Console.Write("Результат вашего вывода: " + result); } static void Main(string[] args) { press1(); string Chars = Console.ReadLine(); press2(); int HowMony = int.Parse(Console.ReadLine()); string result = What(Chars, HowMony); Result(result); } ====== Я так решил, ведь сказано что бы мы делали методы, вот я и сделал)
Благодарю
Все выполнил). Задачи не сложные но заставляют подумать
Спасибо, по твоим урокам сделал полноценный калькулятор через консоль)
Лучший, хорошо объясняешь
very well!
Спасибо!
Фантастический урок.
@bezmamni_cheat
Жыл бұрын
Привет ,как у тебя успехи с шарпом? Где были трудности ?просто я новичок ,интересно ..
@user-sd6wq1dy5i
Жыл бұрын
@@bezmamni_cheat Его не изучал
@behindthedreams
Жыл бұрын
@@user-sd6wq1dy5i А что тогда комментарии под этими уроками? Или ты забросил смотреть?
@user-sd6wq1dy5i
Жыл бұрын
@@behindthedreams Благодаря с++ сделал свой проект.
@behindthedreams
Жыл бұрын
@@user-sd6wq1dy5i Понял
Спасибо за ДЗ! =)
Спасибо )
Лучший
Как же круутооооо!
*Шикарное ДЗ,потратил очень много времени!решил но не так как у вас,но зато понял,смысл функций и методов! вот прям очень рекомендую постараться решить самому!*
@user-wl7fo7bf4t
2 жыл бұрын
ну ок
Спасибо
Преподы по программированию нервно курят в сторонке... Лучший просто
Доступно :)
Классно объясняешь
хороише уроки иголос не напряжный . а \то важно когда просматриваешь видео по несколько раз
Thanks!!!
чем больше кода тем быстрее идет обучение и логическое мышление улучшатся !
Коммент для продвижения
Спасибо за урок!) , чувствую дз будет не легким 0.0
Очень интересная тема, мне всегда нравились функции. Как я уже говорил, жаль, что, чтобы стать программистом не хватает просто понять данный материал.
@user-ql6rp7oc8h
Жыл бұрын
как успехи через год?
@geshoi
Жыл бұрын
@@user-ql6rp7oc8h Как всегда бросил, так как не знаю как дальше развиваться.
@shamai1099
9 ай бұрын
@@geshoi а сейчас?
@geshoi
9 ай бұрын
@@shamai1099Думаю я навсегда отказался от идеи стать программистом.
о такой кобинации как cw+tab надо было еще в само начале написать )), как нудно было писать эту команду по 10 раз за урок, только в этом уроке заметил что ее можно так использовать
Начало видео: Заказчик просит поменять сложение на умножение, нам придется все менять. Я, который, использовал цикл while и просто изменил один символ: ладно
изучал Python, решил ознакомиться с C#, все сказано понятно, доходчиво, спасибо
@bezmamni_cheat
Жыл бұрын
Привет ,как у тебя успехи с шарпом? Где были трудности ?просто я новичок ,интересно !
@ruslanh8106
Жыл бұрын
@@bezmamni_cheat привет, знаешь, вполне не плохо, сейчас изучаю Unity по курсу от Яндекс игр (он в открытом доступе на Ютубе). Насчёт трудностей, самая большая проблема что надо все время практиковаться иначе мелкие подробности забываются PS: напиши ещё раз если нужна ссылка на курс по Unity
@user-sd7on8oc4v
Жыл бұрын
@@ruslanh8106 привет, ты ответил комментатору выше, что нужно постоянно практиковаться, что бы не забывались мелочи. А где ты находишь задания для практики "мелочей"? Все основные сайты с задачами для программиста сложные и требуют знаний выше чем мои
@ruslanh8106
Жыл бұрын
@@user-sd7on8oc4v привет, если честно, то на самом деле сейчас я почти не практикуюсь (только немного в Unity, там язык C#). Не мало зависит от того какой у тебя уровень. Лучше всего практиковаться при создании какого либо проекта (или если проще сказать какой-нибудь игры, сайта, winform приложения, смотря какое направление тебя интересует), это может быть достаточно сложно, поэтому скорее всего тебе придется поработать с интернет ресурсами. Если ты пока только изучаешь азы, то советую смотреть этот плейлист, Сергей доходчиво объясняет
@user-yu7jn7fm8g
Жыл бұрын
@@user-sd7on8oc4v напиши себе программу для самого же себя! я вот сделал себе сортировщик файлов по папкам по их расширениям, попутно отработав все микромоменты. конечно, приходилось гуглить, как что работает, но а как иначе? подумай, какой процесс ты бы хотел автоматизировать, как бы ты это сделал, а потом уже пробуй реализовать
Спасибо большое за отличный урок. У меня вопрос, я верно поняла, что методы выполняются только когда их вызываешь, все, кроме метода Main?
@SimpleCodeIT
4 жыл бұрын
верно
@-unity-
Жыл бұрын
Бывают ещё случаи, когда ты явно не вызываешь метод, но он всё равно автоматически вызывается из чужого кода. Чтобы понять, зачем это нужно и как работает - смотри тему про интерфейсы.
когда google не помогает смотрю ваши уроки. Спасибо!
You are the best teacher. I don't ever saw a teacher like you. Thank you for teaching us about programming
Здравствуйте, а будут уроки по blazor?
Ув. Сергей, а с знаниями, которые вы нам дали в своих уроках про с++ , можно пробовать куда-то втиснуться, хотя-бы работая за хлеб?
@user-ql6rp7oc8h
Жыл бұрын
как успехи через 2 года?
@simakou
Жыл бұрын
@@user-ql6rp7oc8h как успехи через 4 месяца?
курсы SkillBox по си шарпу нервно курят в сторонке.=)
Подскажите, пожалуйста, есть ли какой-нибудь задачник нормальный с ответами для практики С#?
@pjslot
2 жыл бұрын
да
А вопросик появился, а как понять какая функция (метод) будет выполняться первым?
@user-sp1ez2nf2c
5 ай бұрын
Смотря что ты вызовешь первым, то есть по порядку будут выполняться.
О! Вот это уже сильно. Пока мало что понятно, много новой информации.
@user-lm8py5rb4m
3 жыл бұрын
Стало понятнее ?))
@artefakt4349
3 жыл бұрын
@@user-lm8py5rb4m конечно, чем дальше смотрю, вижу примеры, как что используется, естественно становится понятнее.
@gafurov_01
3 жыл бұрын
@@artefakt4349 здравствуйте ,объясните пожалуйста. Пересматриваю ,а понять не могу.
@artefakt4349
3 жыл бұрын
@@gafurov_01 Ага, очень... "мутный" урок. Смотрите дальше, все будет понятнее, когда больше примеров появится. Там объясняется, что как передаётся, имена, параметры и тд.
@gafurov_01
3 жыл бұрын
@@artefakt4349 ок,спасибо. В гугле вроде почитал и уже понятней)
Спасибо !!!
Прошу прощения за глупый вопрос. Во всех учебниках написано, что класс (который не статический) это что-то вроде шаблона на основании которого создаются объекты. У нас есть класс Programm (метод Main которого каждый раз программа и запускает). Он же не статический, кто и когда создает объект этого класса?
@-unity-
Жыл бұрын
Среда исполнения.
Дякую тобі, ще раз переглядаю твій плей лист, ну якщо честно то в же 20+ разів )) я навіть законспектував уже всі твої заняття, прикро що на 84 закінчив ех, а там такі теми пішли складні
@shotgun8117
Жыл бұрын
яку тему ти зараз вивчаєш? цікаво в якому напрямку ти розвиваєшся
Наконец-то понял почему функции методами обзывают... А ведь на поверхности лежало...
Дякую
Интересно, а здесь существуют вообще комментарии, в которых не пишут Сергею спасибо?
@lambodoored4343
2 жыл бұрын
Не, я не встречал. Сергею спасибо.
Пиздец, смотрела другого чувака, нихуя не понимала, зашла сюда а здесь все по полочкам разложено. Спасибо большое!
+
Решение второй задачи с заполнением массива случайными числами, выводом массива и поиском по массиву, а также вывод сообщения, если не найден элемент: class Program { static int IndexOfValue(int[] myArray, int value) { for (int i = 0; i { if (myArray[i] == value) { return i; } } return -1; } static void Main(string[] args) { Console.WriteLine("Введите размер массива:"); int arrayLength = int.Parse(Console.ReadLine()); int[] myArray = new int[arrayLength]; Random random = new Random(); for (int i = 0; i { myArray[i] = random.Next(99); } for (int j = 0; j { Console.Write(myArray[j]+" "); } Console.WriteLine(); Console.WriteLine("Введите число для поиска:"); int value = int.Parse(Console.ReadLine()); if (IndexOfValue(myArray, value) != -1) { Console.WriteLine("Индекс числа " + value + " - " + IndexOfValue(myArray, value)); } else { Console.WriteLine("Число не найдено!"); } } }
Уже раз 5 видео посмотрел, объясните плиз отличие return и void
@tracer4278
3 жыл бұрын
void - говорит о том что метод не возвращает никакое значение. Такие методы обычно выполняют какое то действие. В таких методах ключевое слово "return" - неуместно. Т.к мы не возвращаем никакое значение. Например функция Сonsole.WriteLine() - Метод WriteLine типа "void" , оно не возвращает значение, а выводит на консоль переданный параметр. Так же и не обязательно передавать ему входные параметры, в таком случае будет пустая строка. Метод(функция) у которой тип возвращаемого значения не void, а например int, double и тд. Когда мы указываем тип возвращаемых данных. Значит он обязательно должен вернуть этот тип данных. static int ReturnMethod(int a, int b){ int c = 0; c = a + b; return c; // Возвращаем значение типа int }
@tracer4278
Жыл бұрын
@hurka скинь свой тг, я тебе напишу попробую обьяснить
@tracer4278
Жыл бұрын
@hurka не совсем
@-unity-
Жыл бұрын
Отличие return и void: void - это название типа, служит для ОПИСАНИЯ. Используется только в строке, когда происходит объявление функции. return - это оператор, он ИСПОЛНЯЕТСЯ. Когда выполнение кода доходит до этого оператора, происходит выход из функции. Кстати, внутри функции может быть множество операторов return, если там разветвлённая логика .
Объясните, как он вызывает маленькие иконки со значениями, которые передаются или изменяются, а то у меня в VS этого нет(
Могу засунуть в метод формирование и заполнение целого массива? И когда мне нужен опять этот чистый массив, чтобы опять производить действия над ним, прост вызвать метод?
@-unity-
Жыл бұрын
В принципе,можно формирование массива запихать в метод. Но если "мне нужен опять этот чистый массив", то что мешает просто вызвать напрямую что-то типа arr = new int[40] ? Оператор new как раз создает тебе новый чистый массив без всяких лишних методов.
@user-bf9zp4xv1b
Жыл бұрын
@@-unity- спасибо) Счастья тебе!
То есть методы можно обьявлять внутри методов?
@user-ix4cm7ch5z
Жыл бұрын
главное что бы все это было внутри класса
@-unity-
Жыл бұрын
Можно объявлять и методы внутри методов, если очень сильно хочется. Правда, там есть свои тонкости. А вообще сейчас такая практика уже заставляет задуматься: а не поганый ли код я пишу? Тем не менее, я тоже использую методы внутри методов, если ставится задача "не выносить сор из избы". Но делаю это крайне редко. В последнем проекте у меня несколько сотен функций и лишь одна внутри себя имеет другие функции.
ответьте пожалуйста как понять параметры писать не обязательно? в таком случае этот код без параметров написать возможно?
@-unity-
Жыл бұрын
С точки зрения логики работы функции ты пишешь в ней те параметры, которые нужны для её работы. Например, функция вычисления синуса. Понятно, что пока ты не передашь в неё в качестве параметра угол, она не выдаст тебе результат. В этом случае параметр просто необходим. Но вот с точки зрения синтаксиса языка у нас параметра может и не быть. Например, если твоя логика работы не требует параметра, то и не надо его передавать. Синтаксис это допускает.
1) Символы sing System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { words(); } static void words () { Console.WriteLine("Enter word type: "); string wordType = Console.ReadLine(); Console.WriteLine("Enter word count: "); int wordCount = int.Parse(Console.ReadLine()); for (int i = wordCount; i 0; i--) { Console.Write(wordType); } Console.ReadLine(); } } } 2) Индекс элемента using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { Find(); } static void Find () { Console.WriteLine("Enter value to find: "); int valueToFind = int.Parse(Console.ReadLine()); int[] array = new int[] { 1, 7, 8, 5, 4, 3, 6, 2, 9}; Console.WriteLine("Element index is " + Array.IndexOf(array, valueToFind)); Console.ReadLine(); } } }
Ааа сложно мой мозг трепещет)
не понял разницы между типом void и условным int что то, что то помогает достичь желаемого, просто в войде что то куда то не возвращается
@-unity-
Жыл бұрын
Когда ты описываешь функцию, ты обязан указать тип возвращаемого значения. Но как быть, когда функция по логике своей работы вообще ничего возвращать не должна? Для этого придумали отдельное слово void. Конечно, можно было бы всегда использовать какой-нибудь int и возвращать какое-нибудь число. Но зачем так делать, ведь при этом теряется наглядность? А вот когда ты видишь void в описании функции, тебе сразу становится понятным, что функция ничего не вернёт. Это здорово помогает при написании программ, когда у тебя куча классов в проекте, а каждый класс содержит десятки методов. Более того, если функция возвращает результат, ты можешь вызов одной функции вложить внутрь другой: Sin(Foo(x)). А вот если у тебя по логике Foo ничего не возвращает, а ты по запарке написал вложенные вызовы, то компилятор сразу же выругается и скажет: "Ээээ, дружок, у тебя там void, в какой синус ты его пытаешься передать?". То есть уже на этом этапе можно отследить ошибку. А если бы void не был придуман, то компилятор подсчитал бы такие действия верными. А ты бы потом долго бегал с отладчиком, пытаясь выяснить, почему программа работает не так, как ожидалось. Поэтому я приветствую всё то, что помогает избавиться от ошибок как можно раньше.
А где видос на эту ДЗ?
АААААААААААААААААА
Static это разве модефикатор доступа???
@-unity-
Жыл бұрын
Вроде в ролике было сказано просто "модификатор". Без слова "доступ".
Как я люблю сказочников в комментах,который копируют код с левых сайтов,и кидают его с командами которые мы на курсах даже не видели,вопрос зачем?
class program { static int FindIndex(int[] a,int b) { for (int i = 0; i if (a[i] == b) return i; } return -1; } static void Main(String[] args) { int x = 0; try { Console.Write("Кол-во элементов в массиве: "); x = int.Parse(Console.ReadLine()); } catch (Exception) { Console.WriteLine("Не удалось считать значение!"); Console.ReadLine(); Environment.Exit(1); } int[] a = new int[x]; for (int i = 0; i { try { Console.Write($"Введите значение {i+1} элемента массива: ") ; a[i] = int.Parse(Console.ReadLine()); } catch (Exception) { Console.WriteLine("Не удалось считать значение!"); Console.ReadLine(); Environment.Exit(1); } } int c = 0; try { Console.Write("Индекс какого значения элемента массива вы хотите найти: "); c = int.Parse(Console.ReadLine()); } catch (Exception) { Console.WriteLine("Не удалось считать значение!"); Console.ReadLine(); Environment.Exit(1); } Console.WriteLine($"Индекс первого найденного элемента массива с данным значением = {FindIndex(a, c)}"); Console.ReadLine(); } }
class program { static void str() { int x = 0; string strin = ""; char a = ' '; try { Console.Write("Введите количество символов: "); x = int.Parse(Console.ReadLine()); Console.Write($"Введите символ: "); a = char.Parse(Console.ReadLine()); } catch (Exception) { Console.WriteLine("Не удалось считать значение!"); Console.ReadLine(); System.Environment.Exit(1); } for (int i = 0; i { strin += a; } Console.WriteLine($"Итоговая строка:{strin}"); } static void Main(String[] args) { str(); Console.ReadLine(); } }