С первого раза сложно усваивать, поэтому я в VS через комменты записываю всё подробно, по нескольку раз прогоняя один и тот же момент в ролике. Такой 8-ми минутный ролик растягивается на целый час, но становится всё понятней.
Когда рассказывали о свойствах надо было еще рассказать о снипетах, которые помогают быстро создавать свойства: 1) "prop" + Tab + Tab - создание автосвойства; 2) "propfull" + Tab + Tab - создание свойства в полном варианте с сеттером и геттером; 3) "propg" + Tab + Tab - создание свойства с private сеттером.
Всё же в шарпе верблюжья нотация чуть другая. По крайней мере благодаря решарперу такая стала. Публичные поля - с большой буквы. Публичные/Приватные Методы - с большой буквы Публичные/Приватные Свойства - с большой буквы Приватные поля - с _ + маленькой буквы Локальные переменные метода - с маленькой буквы. что позволяет при работе в методе с приватными полями не накосячить случайно потеряв this. точнее он нам совсем не требуется так как не будет такого что приватное поле и локальная переменная называется одинаково. private int _id; public void A(int id) { _id = id; }
я использую нижнее подчеркивание в именах полей в С++, потому что очень удобно отличать методы от полей, когда у тебя oчень большой класс, написал _ и видишь все поля, это быстрее чем с VS Intellisense.
Если коротко описать три причины, почему нужно писать не public int, а public int {get; set}, то 1. По определению. 2. На всякий случай. 3. Так договорились. И как-то это не особо весомо. Второй пункт только для Явы катит, где действительно придётся переделывать внешний код и там всегда лучше геттер и сеттер прописывать, для C#/VB.NET это не актуально, добавление внутренней обработки свойства никак внешний код не затронет. Особенно для шарпа, где объём добавляемого кода, чтобы из public переменной сделать свойство, минимален. В сухом остатке получается просто сделали возможность поля объявлять public, а потом договорились так никогда не делать. Просто потому что.
Спасибо, очень интересно. Особое спасибо за раскрытие темы автосвойств в начале. У меня есть вопрос по ООП, надеюсь подскажете, а может даже запилите видосик. Дело в том, что иногда применение ООП очевидно и понятно, например, создать класс Car и его экземпляры mercedes, bentley и т.п. Но есть случаи, когда для того, чтобы выполнить задачу, достаточно просто создать несколько статических классов, а потом по одному разу вызвать в методе Main статические функции этих классов, не прибегая к созданию экземпляров классов как таковых. Однако это считается плохим стилем кодирования. Просьба рассказать по-человечески, зачем нужно создавать экземпляры классов, даже когда это особо и не требуется.
Если программа очень маленькая (простейший калькулятор к примеру) (и не планируется ее развивать в сторону объема), то нет большого смысла использовать ООП. Но если проект средний или большой, то модель ООП очень удобна, как минимум тем, что каждый объект инкапсулирует в себе данные и правильный функционал обработки этих данных. Для человека такое восприятие много удобнее, чем миллион статических методов. Сопровождать и развивать ООП проекты намного удобнее.
Артем, у Вас очень познавательные видео, все очень толково рассказано и с юмором :) Смотрю Ваши видео с большим интересом. Но у меня образовался некий вопрос. Было бы очень круто услышать конструктивный ответ! Вы профи своего дела, а значит работаете на хорошей должности или развиваете свой бизнес, в любом случае имеете хороший доход (иначе программированием бы не занимались). Подскажите зачем тогда вы тратите время на канал ? Снимаете видео и тд ? Неужели это делается просто для души ? Или же работа C# программиста не такая уж и высокооплачиваемая раз есть резон снимать видео ? Буду признателен за понимание и хороший ответ) Спасибо !
Где логика? Разумеется что идея зарабатывать на ютубе это бред. Особенно снимая поучительные видео. В интернете очень трудно найти обучающий контент для начинающих программистов.И вообще, если кто-то чему-то учит, то надо просто учиться, а не спрашивать почему он это делает.
Я не пытаюсь кого то задеть, или кого то унизить. С уважением отношусь к тому что эти уроки снимаются и к человеку который это делает. Мне просто стало интересно почему так, и решил спросить это у владельца канала никому не мешая учиться и тд. Спасибо за понимание.
Автор, я вот не понял, для чего же нужны эти свойства, просто предыдущий урок не очень усвоил, решил что посмотрю этот и все пойму, но все же пока что не понимаю, про какую ты говоришь проверку входных данных. Заранее большое спасибо, люблю смотреть ваши уроки, вы классные. Конечно хотелось бы непосредственно по задавать вопросы
Начал изучать шарп после плюсов и меня жесть как бесит паскалькейс одновременно для типов и для методов/свойств, сложнее читать. Ну и дополнительно добивает заглядывание в неймспейс через точку, в итоге вызов например static сортировки для массива arr на глаз выглядит как будто мы вызываем метод объекта Array, а arr это какой-то параметр: Array.Sort(arr); В плюсах читалось бы однозначно: либо метод объекта, либо static метод: arr.sort(); Array::sort(arr); Шарп сам по себе приятный, но эти моменты в стиле просто убивают с непривычки.
Жиза, бро Не просто убивают, а ещё и дико препятствуют нормальному пониманию как правильно это записать и путают Из-за таких моментов плюсы кажутся во много раз проще, но это скорее вопрос привычки, а не самого стиля как такового 🙆
Отличные уроки жаль только в конце не уделено хотябы минуты чтобы привести конкретные примеры для чего можно использовать например массивы, или свойства. В принципе конечно понятно но хотелось бы конкретных примеров какие задачи решаются в разных кодах с помощью этих штук.
Предлагаю ввести нотацию русишПрограммиш. Главное правило! Пишем все, что можно русскими буквами, чтобы шпионы белого дома не могли узнать, что мы сортируем массив пузырьком!
А можно ли как то в VS менять сразу несколько значений? Допустим у меня есть несколько переменных car, и я хочу перезаписать их все разом, меняя одну, например, на tank.
Бывает так, что много переменных одной группы, названия всех запоминать лень )) или просто нереально. В этом случае префиксы очень удобно группируют их в IntelliSense, что имхо, спасает много нервов ))
Окей. У меня назрел такой вопрос: Вот смотри, вот я пишу сейчас на формах. Какого стиля именования всяких ЭУ нужно придерживаться? Раньше я писал их в виде btnKnopka, tbTextbox, dgvInfaVTablize и т.д. Когда же я добавляю обработчик на что угодно, появляется метод, напр. tbOlolo_TextChanged(...) и моя 17-я вижуалка люто ругается на каждый такой обработчик. Нужно значит именовать их в виде TbMoiText? жуть как непривычно
ИМХО Вот больше всего в MS конвенции раздражает перенос открывающей скобки АБСОЛЮТНО везде... Код становится высоким и разреженным по вертикали.. Приходится много скролить при чтении. Лично я предпочитаю оставлять скобку на строке с объявлением но не везде а только в методах, полях и конструкциях типа if foreach и т.д. Одно только это реально сокращяет код по вертикали..
Ну не знаю. Допустим: hero_hp hero_damge Смотрится лучше, чем HeroHp HeroDamage разве нет? а если таких строк N? Всё же для написания игры Python_case он же snake_case подходит лучше - он наглядней при большом кол-ве похожих друг на друга данных, относящихся к одному и тому же объекту.
спс за видео, из опыта скажу процентов 80 разрабов на .NET про это не слышали)))))))) еще очень жутко бесит не использование фигурных скобок с конструкциями if/else или методы по 400 строк
как начал ООП, так понеслась пирда по качкам. Быстро, непонятьно, в ускоренном режиме. Как раз там, где надо очень медленно и хорошо объяснять. Бросил дальше смотреть
Я тот самый гад, который пишет: private string _name; public string Name{get;set}; int _valueEngine; int _valueStamina; int _valueHP; int _maxHP; int _TotalHP; string _helloWorld; string _connectString;
Ы. А меня заставляют писать _, хоть я и не работаю в асконе. Имхо, выглядит норм, да и студия с решарпером и так поймёт без неё (если не зависнет нахуй)
за снейк - дизреспект, шикарный стиль, а вот верблюжачья каша - ссань какая-то. имхо. Плюс, про префикс- майки рекомендуют юзать I для интерфейсов. Зачем ты даешь такие критичные оценки, основанные просто на твоем предпочтении, говоря, что остальное не нужно использовать? Во первых, писать код надо так, как по кайфу, если ты пишешь в одну каску. Если ты работаешь в команде, то там выбирать не придется (если ты не менеджер, что инструкции составляет или решает в каком стиле все должно быть), будут писать так, как скажут. Зачем так критично навязывать свое мнение? (смотрю видео дальше...) да епт, про фигурные скобки снова: "ДЕЛАЙТЕ С НОВОЙ СТРОКИ!". Да рот наоборот я эти "С НОВОЙ СТРОКИ" делал. Это бред - тратить каждый раз строку на долбаную скобку!!! Человеки, люди, пишите так, как вам по кайфу, главное ставьте пробелы для читаемости, а не лепите for(var i=0;i
Твое лицо, когда кодишь на ST в CodeSYS и понятия написания маленькими буквами нет вообще. Все переменные выглядят как VAR_NAME и весь стиль автокоррекции похож на паскаль со вкл капсом. Выглядит ужасно и сделать с этим, увы, ничего нельзя... Найти бы библу для работы с ПЛК(((
Единственный чел который понял что текст должен быть виден на экранчике мобильного телефона респект.
я тоже это понял
С первого раза сложно усваивать, поэтому я в VS через комменты записываю всё подробно, по нескольку раз прогоняя один и тот же момент в ролике. Такой 8-ми минутный ролик растягивается на целый час, но становится всё понятней.
Когда рассказывали о свойствах надо было еще рассказать о снипетах, которые помогают быстро создавать свойства: 1) "prop" + Tab + Tab - создание автосвойства; 2) "propfull" + Tab + Tab - создание свойства в полном варианте с сеттером и геттером; 3) "propg" + Tab + Tab - создание свойства с private сеттером.
Это очень полезно!
spasibo bro!
Спасибо!!!
лучший
Бро, а для создания метода есть подобная фича?
Чувствую рядом тот момент когда мои знания и темы видосиков сравняются, по быстрее бы))
очень годно, лайкую
Сравнялись?
Всё же в шарпе верблюжья нотация чуть другая. По крайней мере благодаря решарперу такая стала.
Публичные поля - с большой буквы.
Публичные/Приватные Методы - с большой буквы
Публичные/Приватные Свойства - с большой буквы
Приватные поля - с _ + маленькой буквы
Локальные переменные метода - с маленькой буквы.
что позволяет при работе в методе с приватными полями не накосячить случайно потеряв this. точнее он нам совсем не требуется так как не будет такого что приватное поле и локальная переменная называется одинаково.
private int _id;
public void A(int id)
{
_id = id;
}
ExtremeCode: Не стоит путать свойства объекта и механизм свойств C#
Я: *ЧЁ*
блять, ты прям меня описал
Ждууууу видосов по Unity)
можешь не ждать
Зато теперь знаю что у iPhone и iPad тип int
И вообще такой стиль позволяет почувствовать себя программистом Apple
чёткий, ее то что Fly
но я перешёл на Samsung(
Смотрю это, все зная! Вас просто очень приятно смотреть!
В принципе, если пересмотреть курс 2-3 раза - становиться всё более-менее понятно.
Потому что с первого раза всё всосать очень проблематично.
чуваг, не тормози главное. твори еще!
Ваа, спасибо за ctrl + K + D. Помню, как-то гуглил такую функцию, но то ли плохо гуглил, то ли еще че, но не смог нагуглить. А тут такое.
я использую нижнее подчеркивание в именах полей в С++, потому что очень удобно отличать методы от полей, когда у тебя oчень большой класс, написал _ и видишь все поля, это быстрее чем с VS Intellisense.
Спасибо большое за этот великолепный плейлист))) Сейчас учу C# очень помогает
Если коротко описать три причины, почему нужно писать не public int, а public int {get; set}, то
1. По определению.
2. На всякий случай.
3. Так договорились.
И как-то это не особо весомо. Второй пункт только для Явы катит, где действительно придётся переделывать внешний код и там всегда лучше геттер и сеттер прописывать, для C#/VB.NET это не актуально, добавление внутренней обработки свойства никак внешний код не затронет. Особенно для шарпа, где объём добавляемого кода, чтобы из public переменной сделать свойство, минимален.
В сухом остатке получается просто сделали возможность поля объявлять public, а потом договорились так никогда не делать. Просто потому что.
еще видосов!!! (спасибо за творчество))
Спасибо, очень интересно. Особое спасибо за раскрытие темы автосвойств в начале.
У меня есть вопрос по ООП, надеюсь подскажете, а может даже запилите видосик.
Дело в том, что иногда применение ООП очевидно и понятно, например, создать класс Car и его экземпляры mercedes, bentley и т.п. Но есть случаи, когда для того, чтобы выполнить задачу, достаточно просто создать несколько статических классов, а потом по одному разу вызвать в методе Main статические функции этих классов, не прибегая к созданию экземпляров классов как таковых. Однако это считается плохим стилем кодирования. Просьба рассказать по-человечески, зачем нужно создавать экземпляры классов, даже когда это особо и не требуется.
Если программа очень маленькая (простейший калькулятор к примеру) (и не планируется ее развивать в сторону объема), то нет большого смысла использовать ООП. Но если проект средний или большой, то модель ООП очень удобна, как минимум тем, что каждый объект инкапсулирует в себе данные и правильный функционал обработки этих данных. Для человека такое восприятие много удобнее, чем миллион статических методов. Сопровождать и развивать ООП проекты намного удобнее.
ctrl+k,D - ты мой спаситель
Артем, у Вас очень познавательные видео, все очень толково рассказано и с юмором :) Смотрю Ваши видео с большим интересом.
Но у меня образовался некий вопрос. Было бы очень круто услышать конструктивный ответ! Вы профи своего дела, а значит работаете на хорошей должности или развиваете свой бизнес, в любом случае имеете хороший доход (иначе программированием бы не занимались). Подскажите зачем тогда вы тратите время на канал ? Снимаете видео и тд ? Неужели это делается просто для души ? Или же работа C# программиста не такая уж и высокооплачиваемая раз есть резон снимать видео ?
Буду признателен за понимание и хороший ответ) Спасибо !
Где логика? Разумеется что идея зарабатывать на ютубе это бред.
Особенно снимая поучительные видео. В интернете очень трудно найти обучающий контент для начинающих программистов.И вообще, если кто-то чему-то учит, то надо просто учиться, а не спрашивать почему он это делает.
Я не пытаюсь кого то задеть, или кого то унизить. С уважением отношусь к тому что эти уроки снимаются и к человеку который это делает. Мне просто стало интересно почему так, и решил спросить это у владельца канала никому не мешая учиться и тд. Спасибо за понимание.
тонко))
Автор, я вот не понял, для чего же нужны эти свойства, просто предыдущий урок не очень усвоил, решил что посмотрю этот и все пойму, но все же пока что не понимаю, про какую ты говоришь проверку входных данных. Заранее большое спасибо, люблю смотреть ваши уроки, вы классные. Конечно хотелось бы непосредственно по задавать вопросы
разобрался ?
Алекс Джаванов нет
Начал изучать шарп после плюсов и меня жесть как бесит паскалькейс одновременно для типов и для методов/свойств, сложнее читать. Ну и дополнительно добивает заглядывание в неймспейс через точку, в итоге вызов например static сортировки для массива arr на глаз выглядит как будто мы вызываем метод объекта Array, а arr это какой-то параметр:
Array.Sort(arr);
В плюсах читалось бы однозначно: либо метод объекта, либо static метод:
arr.sort();
Array::sort(arr);
Шарп сам по себе приятный, но эти моменты в стиле просто убивают с непривычки.
Жиза, бро
Не просто убивают, а ещё и дико препятствуют нормальному пониманию как правильно это записать и путают
Из-за таких моментов плюсы кажутся во много раз проще, но это скорее вопрос привычки, а не самого стиля как такового 🙆
@@Валерия-в7и Да, вопрос привычки, мне уже нормально пишется. Хоть и всё ещё считаю, что в плюсах стиль попроще как-то.
Отличные уроки жаль только в конце не уделено хотябы минуты чтобы привести конкретные примеры для чего можно использовать например массивы, или свойства. В принципе конечно понятно но хотелось бы конкретных примеров какие задачи решаются в разных кодах с помощью этих штук.
Очень интересно, один нюанс - нихера не понятно.
О, новый видос. Отлично-отлично
Предлагаю ввести нотацию русишПрограммиш.
Главное правило! Пишем все, что можно русскими буквами, чтобы шпионы белого дома не могли узнать, что мы сортируем массив пузырьком!
Спасибо! Очень интересно ))
А можно ли как то в VS менять сразу несколько значений? Допустим у меня есть несколько переменных car, и я хочу перезаписать их все разом, меняя одну, например, на tank.
Бывает так, что много переменных одной группы, названия всех запоминать лень )) или просто нереально. В этом случае префиксы очень удобно группируют их в IntelliSense, что имхо, спасает много нервов ))
За Ctrl + K D дополнительный лайк со второго аккаунта
Окей. У меня назрел такой вопрос:
Вот смотри, вот я пишу сейчас на формах. Какого стиля именования всяких ЭУ нужно придерживаться? Раньше я писал их в виде btnKnopka, tbTextbox, dgvInfaVTablize и т.д. Когда же я добавляю обработчик на что угодно, появляется метод, напр. tbOlolo_TextChanged(...) и моя 17-я вижуалка люто ругается на каждый такой обработчик. Нужно значит именовать их в виде TbMoiText? жуть как непривычно
8:13 спасибо
А можно изменить комбинацию Ctrl+K+D? Лично мне неудобно пиздец. В PHPStorm для этого, например, используется Ctrl+Alt+L - мне так гораздо удобнее
ИМХО Вот больше всего в MS конвенции раздражает перенос открывающей скобки АБСОЛЮТНО везде... Код становится высоким и разреженным по вертикали.. Приходится много скролить при чтении. Лично я предпочитаю оставлять скобку на строке с объявлением но не везде а только в методах, полях и конструкциях типа if foreach и т.д. Одно только это реально сокращяет код по вертикали..
А что, можно скобки оставлять в строке? ._.
Дарова))
Что за Type type = typeof(Human); ??
Хотелось бы узнать, а как всё-таки именуют константы? КАПСОМ?
3:08 ОСТАНОВИТЕ МОЙ ОР!!!))))))
С# C#-арпом, но как насчет Windows Form?
переходи к Хрису
Ну не знаю. Допустим:
hero_hp
hero_damge
Смотрится лучше, чем
HeroHp
HeroDamage
разве нет?
а если таких строк N?
Всё же для написания игры Python_case он же snake_case подходит лучше - он наглядней при большом кол-ве похожих друг на друга данных, относящихся к одному и тому же объекту.
Нет.
И вообще, какого хера питонист в шарпе забыл ? Фу, выйди с чата.
@@lphoenixl7771 я не программист, я технический дизайнер, и это мое мнение со стороны)
@@ivan_naitoraitoхах, ладно, реабилитирован
люди, помогите пж, я после 10 части перестал все норм понимать, учу для Юнити, нужны ли эти последние 5 серий для норм осваивания Юнити?
ну как нужно ли ?
Ка добавить цвета в студио, в этом видео виден цвет где называния program.cs ?
Расширение для студии. Погугли Productivity Power Tools
ok
спс за видео, из опыта скажу процентов 80 разрабов на .NET про это не слышали)))))))) еще очень жутко бесит не использование фигурных скобок с конструкциями if/else или методы по 400 строк
Как скоро на формы перейдем?
как начал ООП, так понеслась пирда по качкам. Быстро, непонятьно, в ускоренном режиме. Как раз там, где надо очень медленно и хорошо объяснять. Бросил дальше смотреть
как пояснить что приписка "_" не нужна как и комментарии автосгенерированные к каждому методу и публичному свойству?
Привет из 2к19
8:07 А я минут по 20 с отступами и скобками парился.
Зачем я смотрю уроки для маленьких и тупых если я не маленький?
My_Classs, My_Property, My_Method
что со звуком?
Ты куда пропал? Где интерфейсы и прочая нечесть?
хардтаб или софттаб?
soft :)
Но почему? Удалить таб легче, чем 4 пробела.
Только хардкор! Только пробелы!
@@ExtremeCode щито?
Верните мне мой 98й
Донцовой вставь
Я тот самый гад, который пишет:
private string _name;
public string Name{get;set};
int _valueEngine;
int _valueStamina;
int _valueHP;
int _maxHP;
int _TotalHP;
string _helloWorld;
string _connectString;
Ошибка в слове УСОМНИТЬСЯ 0:08 ))
это чей-то комментарий
Ы. А меня заставляют писать _, хоть я и не работаю в асконе. Имхо, выглядит норм, да и студия с решарпером и так поймёт без неё (если не зависнет нахуй)
Решарпер да штука такая не пернуть не чихнуть во время большого проекта)))
благо в 2019 почти его аналог подвезли в стоковой VS
_ для поле класса ставят и по сей день
Два раза проебаться на одной и той же теме в двух роликах - сильно.
Szia, magyar vagyok.
8:10
Не ужели я настолько тупой что не могу понять уроки для маленьких и тупых......... Очень многа слов которых я не ПаНиМаЮ..........(
Если говоришь что не будешь грузить всякой ерундой то просто помолчи
Что то мне не особо понятно
за снейк - дизреспект, шикарный стиль, а вот верблюжачья каша - ссань какая-то. имхо. Плюс, про префикс- майки рекомендуют юзать I для интерфейсов. Зачем ты даешь такие критичные оценки, основанные просто на твоем предпочтении, говоря, что остальное не нужно использовать? Во первых, писать код надо так, как по кайфу, если ты пишешь в одну каску. Если ты работаешь в команде, то там выбирать не придется (если ты не менеджер, что инструкции составляет или решает в каком стиле все должно быть), будут писать так, как скажут. Зачем так критично навязывать свое мнение? (смотрю видео дальше...) да епт, про фигурные скобки снова: "ДЕЛАЙТЕ С НОВОЙ СТРОКИ!". Да рот наоборот я эти "С НОВОЙ СТРОКИ" делал. Это бред - тратить каждый раз строку на долбаную скобку!!! Человеки, люди, пишите так, как вам по кайфу, главное ставьте пробелы для читаемости, а не лепите for(var i=0;i
Нормальная практика ставить нижнее подчеркивание перед приватной переменной класса.
Пришел услышать пояснения за код на языке для маленьких и тупых - услышал кучу блатного жаргона. Смысл такого урока, чисто выебнуться.
Один вопрос только, почему открывающая скобка с новой строки? Это пиздец как криво смотрится, а когда она наверху, читабельность не ухудшается.
Ухудшается блин, глоза вытикают когда вижу такое
не помешало бы обьяснение каждого слова, ато только этого не хватает
я ни хуя не понимаю
Твое лицо, когда кодишь на ST в CodeSYS и понятия написания маленькими буквами нет вообще. Все переменные выглядят как VAR_NAME и весь стиль автокоррекции похож на паскаль со вкл капсом. Выглядит ужасно и сделать с этим, увы, ничего нельзя... Найти бы библу для работы с ПЛК(((
Нинужны, гыыыыы
не матерись
Контролы называю CtrlTxB..., CtrlLblMisc1,...
private object _field;
private void _Method(){}
public object Field {get; set;}
public void Method() { _Method();}
Я нормальный?
нет, _ имеет место быть только для private или protected полей. Зачем для методов таким заниматься - загадка.