Full transcript
0:00приветствую вас друзья меня зовут сергей
0:01мы с вами продолжаем изучать язык
0:03программирования си sharp и сегодня мы с
0:05вами будем говорить об операторе
0:07присваивания объединения со значением
0:09нал либо же а вот такой штуки
0:12этот урок является логическим
0:14продолжением предыдущего урока где мы с
0:16вами обсуждали просто оператор
0:18объединения стал не забудьте подписаться
0:20на канал и жмакнуть колокольчик чтобы не
0:22пропускать новые руки ну и теперь
0:24непосредственно к делу итак оператор
0:26присваивания объединения со значением на
0:28а вот такой похож на обычный оператор
0:31объединения снова то есть вот такой
0:33просто ?
0:34соответственно для того чтобы понять как
0:36работает вот этот оператор будет разумно
0:38его рассмотреть контексте того чем
0:41отличается с предыдущим оператором
0:42ключевой момент то есть разница состоит
0:45в том каким образом эти два оператора
0:47действует на левый операнд давайте
0:49немножко более подробно посмотрим на код
0:52который у нас здесь имеется
0:54это немного модифицированный код
0:56прошлого урока где мы использовали
0:57оператор объединения
0:59знал без знака равно брейк-пойнт у нас
1:01на 24 строчки кода запустим программу
1:04где баги с помощью клавиши f5 нас
1:06интересует прежде всего переменная стр
1:09которая должна храниться строка
1:11но так как это у нас ссылочный тип мы
1:13тогда можем присвоить на
1:14ну и в данном случае двадцать второй
1:16строчке кода мы именно это и сделали
1:18теперь на 24 строчки кода оператор
1:21объединение сноу должен проверить нашу
1:24переменную str которая является его
1:26левым операндом их случай если в нем
1:28находится значение то в переменную
1:31резал присвоится
1:32вот эта вот строка которая является
1:34режим так дефолтным значением если у нас
1:37или вам operandi но если мы сделаем шаг
1:39то в переменный resort будет хранится
1:41значение default string соответственно
1:43если бы у нас до этого переменной стр
1:45был не нал на какая-то строка то вместо
1:48вот этого дефолтного значения дефолтного
1:50сообщения отдыхал string в нашу
1:53переменную резал присваивалась то
1:54значение которое было бы в переменной
1:56стр именно этот момент мы рассматривали
1:58в прошлом уроке но контексте данного
2:00урока нас интересует несколько другой
2:03нам
2:03нас интересует вот эта переменная стр
2:05что с ней произошло после выполнения
2:07оператор объединения снов в данном
2:10случае там остался нал
2:11то есть вот этот оператор обвинения снял
2:14просто проверяет переменную и если не
2:16нору он вместо этой переменной
2:18подставляет дефолтное значение какой-то
2:20другой источник которой мы хотим
2:22сохранить результат но в данном случае
2:23это наша переменная резал
2:25теперь же давайте модифицируем этот код
2:27и вместо оператора объединения стал
2:30используем оператор присваивания
2:32объединения со значением 0 ну просто
2:35допишем здесь равно и все запускаем нашу
2:38программу ещё один раз в дебаггер она у
2:41нас перед собирается перри компилируется
2:42и смотрите ситуация точно такая же в
2:45переменной астер у нас сейчас нал и у
2:47нас есть дефолтное значение
2:48действие нашего оператора присваивания
2:50объединения вот этого нового на
2:52переменную ризал будет точно таким же
2:54как и в прошлом случае то есть если
2:56постере
2:57у нас now the врезалась нам присвоится
2:59дефолтное значение данном случае наше
3:02сообщение дефолт string вот она
3:04прислонилась но посмотрите что у нас
3:06теперь находится в переменной стр если в
3:09прошлом примере у нас переменная стр не
3:12изменилось там как был на лодок и
3:13остался на в данном случае в эту
3:16переменную str тоже присвоила
3:17сверхплотное значение соответственно вот
3:20она разница что это нам дает конкретно в
3:22данном случае мы можем просто избавиться
3:24от дополнительной переменной rezound
3:26ну и соответственно принес то этой
3:28примерной методе red line класса консоль
3:31мы будем использовать нашу переменную
3:32str таким образом если мы теперь это все
3:35запускаем и она с переменной стр был но
3:38у туда присвоится дефолтное значение без
3:40промежуточной перемены наш холст
3:42работает корректно ну и соответственно
3:44мы получим сообщение о том какое
3:46количество символов строки в данном
3:48случае мы можем здесь использовать не
3:49дефолт strenx'а просто string
3:52если мы хотим чтобы у нас вместо мало
3:56просто переменная сэр была пустая строка
3:58вот такая 2 кавычки соответственно на
4:01вывод конце мы получим сообщение о том
4:03что количество символов строки у нас 0
4:05таким образом мы получаем очень короткую
4:07форму проверки на нал и в случае если в
4:10переменной находится на присваивание до
4:12какого-то значения но если же у нас в
4:14переменной стр уже до этого было
4:16какое-то значение в данном случае там
4:18строка тест то соответственно после вот
4:21такой вот проверки
4:22в эту строку ничего не будет присвоен а
4:24и в дальнейшем мы и так и будем работать
4:27той же информации которая была в
4:28переменной стр количество символа в
4:31строке 4 в данном случае мы с вами
4:33рассмотрели пример со строками
4:35но у нас же существуют и другие
4:37ссылочные типы
4:38и для них это также работает давайте же
4:40рассмотрим ещё один пример но уже с
4:42массивами и так вот он наш следующий
4:44пример задача данной программки написать
4:47сообщение о том какое количество
4:49элементов в массиве
4:50давайте с вами представим что мы
4:51получаем массив откуда-то извне не важно
4:54какие там элементы данном случае это
4:56элементы типа int но с тем же успехом
4:58это мог бы быть список студентов
5:00какого-то укус или какой-то список
5:01покупок в магазине общем любая
5:04информация которую можно поместить в
5:06массив данный метод get эрой у нас
5:08выступает в качестве заглушки здесь
5:10могло бы быть обращения к базе данных
5:11какой-то теперь запрос в общем что то
5:14что получает данные извне соответственно
5:16мы заранее не знаем что нам кто-то
5:17придет и тем не менее мы должны каким-то
5:20образом выводить информацию о том какое
5:22количество элементов в нашем оси и
5:24возможна дальнейшая наша логика тоже
5:26как-то зависит от того какое количество
5:28элементов в нашем массе допустим если их
5:310 то мы должны сделать определенное
5:33какое-то действие если больше то другое
5:35какое-то действие но есть один нюанс так
5:37как наш массив это ссылочные те кто мы
5:39вполне себе спокойно можем получить сюда
5:41мал из внешнего источника соответственно
5:44каждый раз прежде чем мы что то будем
5:45делать с этим массивом вам необходимо
5:47будет выполнять проверку на null именно
5:50так сейчас и работает металл гетерой
5:52место каких-то данных массиве он нам
5:54вернет нам соответственно если мы в
5:56дальнейшем будем пытаться работать с
5:58таким массивом вот как у нас а пиццы на
5:59это сейчас и запустим нашу программу
6:01полученного равен sexy прошлых уроках мы
6:04рассматривали почему это происходит
6:05соответственно чтобы не писать проверку
6:07на на можем использовать этот оператор
6:10и соответственно создавать массивно 0
6:12элементов и в дальнейшем мы будем знать
6:14что там 0 элементов но требует случайном
6:17не будет необходимости проверять это
6:19значение на нам хочу обратить ваше
6:20внимание на то что в данном случае у нас
6:23здесь есть проблема проблема заключается
6:25в том что вот этот оператор присваивания
6:27объединения стал доступен только
6:30в версии языка сишарп 8 на данный момент
6:33и лежала студией оды форту по умолчанию
6:36используется версия языка
6:38программирования си sharp всем и 3
6:40возможно вам придется провести
6:41дополнительные манипуляции чтобы иметь
6:43возможность данный оператор использовать
6:45что же нам необходимо сделать вам нужно
6:47открыть в папке именно тут проект в
6:49совершении в котором используется данный
6:51код в нашем случае это la sin 2
6:53поэтому я нажимаю ним правой кнопкой
6:55мышки и нажимаю опыт folder in file
6:58explorer далее нам необходимо найти файл
7:00с расширением cs просишь и открытие в
7:04каком-то текстовом редакторе в этом
7:06файле у нас хранятся различные настройки
7:08нашего проекта здесь у нас есть
7:10различные секции про port групп если мы
7:13опустимся немножечко ниже мы видим что в
7:16одной из этих секций
7:17присутствует секция long вершину 80
7:19данном случае нам в этой второй секции
7:22property group который находится
7:24немножко выше нужно добавить тот же
7:26самый параметр сохранить от файл дальше
7:28visual studio спросит нужно ли
7:30перезагрузить файл и которые были
7:32изменены нажимаем рилот холл и после
7:35этого
7:37перри собрав решение мы сможем
7:39использовать данный оператор
7:41теперь мы данный оператор можем
7:44использовать
7:44двадцать девятой строчке кода поставим
7:46breakpoint и запустим нашу программу в
7:48отладке метод get эры
7:50сейчас качестве результата нам вернет
7:52нам
7:53и в переменной мой первый нас будет нам
7:57соответственно в этот оператор который у
7:59нас проверит что у нас находится в
8:02переменной мая эры
8:03увидит что-то гнал и присвоить туда
8:05дефолтное значение новые массив 0 0
8:08элементов и присвоить туда ссылку на
8:09этот массив таким образом в дальнейшем
8:11когда мы обратимся к переменной моей эры
8:13и обратимся к tejo
8:15свойства линз но уже не получим наворот
8:17френдс эксепшен а получим вывод на
8:19консоль сообщения о том что у нас
8:21количество элементов в массиве
8:230 если же мы представим что наш метод
8:26get эрой вернул нам какое-то другое
8:29количество элементов в данном случае
8:3111 опять запускаем все это в d баги
8:34переменной мои r11 на тридцать пятой
8:37строчке кода выполняется проверка того
8:39что у нас находится в переменной мой
8:40эрой там у нас сейчас не нал поэтому
8:42дефолтное значение туда присваиваться не
8:44будет и дальнейшем мы получим сообщение
8:47о том что у нас количество элементов в
8:49массиве 11 исходный код данного урока
8:52для патронов канала с доступом к
8:54исходному коду будет доступен на
8:56патреоне если вам понравилось это видео
8:58оно было для вас полезным интересными
8:59забудьте поставить под ним лайк и
9:01поддержи меня канал финансовую
9:03информацию о том как это сделает найдете
9:05внизу в описании буду рад если вы
9:07поделитесь этим уроком но и конечно же
9:09если вы еще не подписались на канал то
9:11обязательно подписывайтесь здесь уже
9:12есть и будет еще много полезных и
9:14интересных уроков для вас чем спасибо за
9:16внимание пока