C# урок №15 - ключевое слово static. Статические классы и методы.

  Рет қаралды 12,935

SBeregovoyRU

SBeregovoyRU

3 жыл бұрын

Всего лишь одно ключевое слово "static" подумаете вы?! Но оно действительно заслуживает отдельного урока т.к. тема важная и об нее достаточно часто спотыкаются начинающие программисты. Ну и на собеседовании вас почти наверняка спросят об этом т.к. этот вопрос позволяет понять как глубоко вы вникли в программирование или же ограничились поверхностными знаниями.
-------------------
Ваше участие очень важно для развития моего канала. Самое мало, что вы можете сделать это поддержать канал любым доступным вам способом: лайк, комментарий, подписка. Меня это мотивирует на продолжение работы, а вам ничего не стоит.
Станьте спонсором канала, и вы получите доступ к эксклюзивным бонусам. Подробнее:
/ @sberegovoyru
Личные вопросы о помощи в программирование и построении карьеры в IT можно задавать тут sberegovoy.ru/mentor/
--------------------
Оставайтесь на связи:
Мой сайт - sberegovoy.ru
Вступайте в телеграмм канал - t.me/sberegovoy
Группа в телеграмме - t.me/group_sberegovoyru
Вступайте в группу ВК - sberegovoyru
#ityoutubersru

Пікірлер: 83
@user-oj3kn4lv8t
@user-oj3kn4lv8t 3 жыл бұрын
Господи! Эта рубрика ещё жива.. Спасибо большое тебе за этот нелёгкий труд.
@irahamza1916
@irahamza1916 3 жыл бұрын
You prolly dont give a shit but if you are stoned like me during the covid times then you can stream pretty much all the latest series on InstaFlixxer. Have been watching with my brother for the last couple of months =)
@mauriciofinnley8852
@mauriciofinnley8852 3 жыл бұрын
@Ira Hamza yea, been using InstaFlixxer for since december myself :D
@user-yn6np8xi7k
@user-yn6np8xi7k 3 жыл бұрын
Еще один из наглядных примеров использования модификатора static в классе, это подсчет количества созданных объектов класса (объявляем целочисленное поле в классе с модификатором static, и в конструкторе(ах) увеличиваем его на единицу, в итоге в этой статической переменной будет число созданных экземпляров класса (объектов)). Спасибо за очередной урок!
@SBeregovoyRU
@SBeregovoyRU 3 жыл бұрын
хорошее дополнение!
@user-tl6il2ex3p
@user-tl6il2ex3p 3 жыл бұрын
Видео супер - никакой воды. Раскрывается "суть" очередной темы. Автору большое спасибо
@user-dv3nc7fb7o
@user-dv3nc7fb7o 3 жыл бұрын
а ты доску видишь на старте?
@applifeer1589
@applifeer1589 3 жыл бұрын
Наверное один из тех каналов по программированию, где реально хорошее, разжеванное объяснение и качественная подача материала, что даже обычному человеку понятно
@74Photon
@74Photon 3 жыл бұрын
Про public private protected internal много рассказывают, а вот про static ни разу не слышал объяснений. Спасибо огромное!!!
@SBeregovoyRU
@SBeregovoyRU 3 жыл бұрын
и вам спасибо, что смотрите и оцениваете
@user-mm1xr5to1o
@user-mm1xr5to1o 3 жыл бұрын
Спасибо ! Жду новых уроков !
@mrxprojects
@mrxprojects 9 ай бұрын
Спасибо за то, что я уже знал.
@user-iq9ym6xz3q
@user-iq9ym6xz3q 3 жыл бұрын
Очень здорово, что начинаешь с проблематики (факты)
@champer4887
@champer4887 3 жыл бұрын
Степан, продолжай пожалуйста) Очень полезную инфу даешь
@bumer23011983
@bumer23011983 3 жыл бұрын
Спасибо за урок. Ждём следующих.
@okitkin
@okitkin 6 ай бұрын
Благодарю друг за работу тебя, все понятно, подробно !!!!
@firstvf
@firstvf Жыл бұрын
Спасибо, Степан! Отличный урок🙂
@SergeyKirik
@SergeyKirik Жыл бұрын
Капец, Степан, объяснение - выше всяких похвал. На разных курсах, в документации - все далеко не так понятно, у Вас определенно талант преподавать! Спасибо большое.
@boostedrobloxdevelopment3374
@boostedrobloxdevelopment3374 2 жыл бұрын
Огромное вам спасибо!
@Hedohaac
@Hedohaac 2 жыл бұрын
Спасибо. Наконец-то понял что это такое. Долгое время эти статики мне в кошмарах снились, когда натыкался на них на других каналах ютуба.
@bomarshee
@bomarshee 3 жыл бұрын
Очень доходчиво. Раньше в созданные функции пихал по наитию всё
@AlexGogsan
@AlexGogsan 11 ай бұрын
отличное объяснение, очень жаль, что вы Степан ушли с ютуба
@sergeismazheluk1662
@sergeismazheluk1662 3 жыл бұрын
Ура!!!Урааа!! Новое видео, спасибо Степан
@geniamasanin8322
@geniamasanin8322 3 жыл бұрын
Отличное видео) А будет видос про интерфейсы?
@SBeregovoyRU
@SBeregovoyRU 3 жыл бұрын
будет
@user-um1vx7iy9d
@user-um1vx7iy9d 3 жыл бұрын
Вся путаница ушла) Спасибо!
@user-no3rr2wk2g
@user-no3rr2wk2g 3 жыл бұрын
Вполне красивое объяснение
@JlovenPK1
@JlovenPK1 3 жыл бұрын
гуд зер гуд ) Жду видео обзор на новые фичи C# 9.0
@OpalGooDog
@OpalGooDog 3 жыл бұрын
cпасибо)
@TownNebo
@TownNebo 3 жыл бұрын
Есть ли в планах записывать платные видео по asp net core?
@SBeregovoyRU
@SBeregovoyRU 3 жыл бұрын
да, есть в планах такие видео
@dovletgeldirozymuradov533
@dovletgeldirozymuradov533 2 жыл бұрын
спасибооооо
@PMC__Boykisser
@PMC__Boykisser 3 жыл бұрын
статик означает что теперь классу будет на постоянной основе выделена память или это произойдет только когда мы его позовем даже без new?
@Vov4ik048
@Vov4ik048 3 жыл бұрын
Уроков больше не будет ?
@AleksPanable
@AleksPanable Жыл бұрын
неудобство static получается в том, что однажды его прописав и создав массу обращений к нему, убрать static (если вдруг понадобится) превратиться в рутину , чтобы изменить код
@sergeismazheluk1662
@sergeismazheluk1662 3 жыл бұрын
Степан делайте видео почаще))
@dvdrelin
@dvdrelin 3 жыл бұрын
Читайте Рихтера CLR. Там все есть
@moon5964
@moon5964 3 жыл бұрын
Спасибо вам большое за курс уроков c# c нуля, хотелось бы у вас узнать сколько вы еще планируете выпусть роликов в этом цикле? Спасибо заранее за ответ!
@TOKERXD
@TOKERXD Жыл бұрын
еще 1. ХАХААХАХХ
@vitalijuskolinko9011
@vitalijuskolinko9011 3 жыл бұрын
Отлично объяснил, Степан! Новичкам зайдет и будет полезно 👍 И всё же что выбрать для helper'а - static или выделить память? Класс helper с методами, которые что-то подсчитывают, сравнивают и т.п. В плане оптимизации памяти стоит ли этот класс вешать как static, если обращаюсь к этим методам только один раз?
@dannycyberwalker
@dannycyberwalker 3 жыл бұрын
Отличные уроки, некоторые моменты достаточно глубоко расказываешь. Ты не собираешься разбирать книгу CLR via C#, хотя бы первую главу?
@sergeismazheluk1662
@sergeismazheluk1662 3 жыл бұрын
Вот бы Степан подготовил урок по модификаторам доступа...
@leowarp_1533
@leowarp_1533 3 жыл бұрын
Спасибо большое за урок :) Этот урок знал, но смотрел с большим интересом :)
@KAPT0IIIKA
@KAPT0IIIKA Жыл бұрын
Если создать 1000 потоков которые позовут calc.Add с рандомными числами в одну секунду, этот статический метод инстанцинируется для каждого потока чтобы посчитать корректные суммы? Как реализован thread safe для static?
@sergeismazheluk1662
@sergeismazheluk1662 3 жыл бұрын
Ждем Степан, ждем...
@user-wp6pd2fx8g
@user-wp6pd2fx8g 2 жыл бұрын
Спасибо за видео. Можете рассказать, почему кто-то рекомендует писать код программы без static? Т.к. static помогает дешифровать и узнать код программы. То есть это мешает безопасности кода
@SBeregovoyRU
@SBeregovoyRU 2 жыл бұрын
О нет, при чем тут дешифровка... к static то, что вы написали не имеет никакого отношения
@user-wp6pd2fx8g
@user-wp6pd2fx8g 2 жыл бұрын
@@SBeregovoyRU я не сам это придумал, а услышал от блогера "XpucT". Что он так борется со взломом своей программы, поэтому и спросил у тебя:)
@user-em3lf3ze4e
@user-em3lf3ze4e 3 жыл бұрын
Спасибо за видео. Подскажите пожалуйста, если мое приложение работает с базой данных, например интернет-магазин. Единовременных пользователей ожидается немного, и каталог товаров тоже очень маленький. Позиций 100-200. У каждого товара полей тоже мало. Id, название, категория, цена. Я создал класс DataAcessLayer, он динамичный. Создаю экземпляр класса каждый раз, как обращаюсь к БД. Для поиска товаров, просмотра категорий товаров, сортировки по ценам и т.д. Сейчас я делаю это логикой sql запросов (вернуть только категорий, вернуть товар по id, вернуть товары дешевле 100 рублей и т.д.) Всё работает, но каждое простейшее действие пользователя по отображению товаров или их сортировки создает экземпляр класса dal и обращение к БД. Я подумал взять и выгрузить в ОЗУ весь лист обьектов из таблицы товаров в БД, чтобы к ней не лезть каждый раз. И делаю промежуточный класс между DAL и логикой. В этом промежуточном классе я просто один раз в пять минут загружаю таблицу товаров из БД (сама таблица в БД меняется раз в месяц, так что пять минут-норм). Храню в этом промежуточном классе приватную переменную - лист объектов (товаров). И сам в этом классе пишу публичные методы, возвращающие категории товаров, цены, список товаров и т.д. Чтобы на каждый чих пользователя не лезть в БД. Отклик от БД все равно 100-200мс, а так должно быть быстрее. Нормально ли, что я сделал этот промежуточный класс статическим? Т.е. создается один экземпляр на все время работы программы. К БД больше лезть не нужно постоянно, и возврат ограниченного списка товаров, сортировку и т.д. я теперь реализую в этом классе, а не специфичными sql запросами к БД. Или это экономия на спичках и дурной тон? Или если сделать сам класс DAL статическим, это дурной тон, или наоборот хорошая практика? Я понимаю, что всё завсисит от архитектуры конкретного приложения, но может быть есть общий ответ типа "так делать нельзя" или "да, так лучше". Спасибо. P.S. с другой стороны, таким образом я отказываюсь от асинхронности и мои async-await будут упираться в мои статичные методы единственного экземпляра статичного класса. Наверное, в продакшене такое решение как у меня не встречается, и принято обращаться кучу раз к БД? Мол, её не дураки писали, и там всё быстро работает?
@user-lx5vv3uu8u
@user-lx5vv3uu8u 3 жыл бұрын
Степан, привет! Спасибо огромное!
@user-xj7ht4kd3q
@user-xj7ht4kd3q 3 жыл бұрын
Добрый день, можно ли наследовать не статический класс со статическим методом?
@SBeregovoyRU
@SBeregovoyRU 3 жыл бұрын
можно, наличие ключевого слово static не влияет на наследование. С наследование связаны ключевики: abstract, virtual, sealed
@user-ew3dl6vb6k
@user-ew3dl6vb6k 3 жыл бұрын
А сколько всего на сегодняшний день уроков в цикле С# с нуля? 15-ый это все, что есть сегодня?
@mikhailsundukov8645
@mikhailsundukov8645 3 жыл бұрын
Степан, спасибо большое за видео! Я новичок и не использую статики потому что боюсь выстрелить себе в ногу..
@SBeregovoyRU
@SBeregovoyRU 3 жыл бұрын
Хватит бояться! Пришло время действовать! :-)
@iz1563
@iz1563 3 жыл бұрын
Привет. Хотелось бы узнать темы доп видео за спонсорство. Зря отказались от менторства, теме нужно время раскачатьсЯ...
@stan5214
@stan5214 3 жыл бұрын
Ухх как у меня подгорало когда почти все примеры в статиках, а я пытался понять и что-то написать в ООП.
@sergeismazheluk1662
@sergeismazheluk1662 3 жыл бұрын
Привет Степан. Уроки здесь уже месяц не выходят((( когда же появятся новые видео?? ждем , печаль(((
@SBeregovoyRU
@SBeregovoyRU 3 жыл бұрын
Привет! Последний видео урок был 15 ноября.
@sever5860
@sever5860 3 жыл бұрын
Хорошо выглядишь.
@vitalijgrabovan2061
@vitalijgrabovan2061 3 жыл бұрын
Здравствуйте Степан, хочу спросить если планируете в будущем снимать уроки по WPF и комбинировать с тем что научились в этих видео ? Спасибо из Чехии ;)
@SBeregovoyRU
@SBeregovoyRU 3 жыл бұрын
WPF не планирую т.к. не мой профиль, я веб разработчик
@vitalijgrabovan2061
@vitalijgrabovan2061 3 жыл бұрын
@@SBeregovoyRU спасибо за ответ а будет продолжение допустим в комбинации с вебом. Просто хотелось бы с консольного программирования перейти на более модерный способ применения С#.
@dvdrelin
@dvdrelin 3 жыл бұрын
Все проще. Есть методы экземпляра, есть методы типа. Вся их разница обусловлена именно этим различием. Как только становится доступен тип, доступны и его члены. Вот и все.
@SBeregovoyRU
@SBeregovoyRU 3 жыл бұрын
Вы описываете известные факты, но не отвечаете на вопрос почему так сделано. То, что есть static у методов и классов новички замечают почти сразу как только начинают программирование. Только вот почему так сделано им не понятно.
@dvdrelin
@dvdrelin 3 жыл бұрын
@@SBeregovoyRU Я в целом не против упрощенной подачи, но для меня было намного проще освоить материал о чем-то базовом и важном, а потом оттолкнуться от этого в чем-то более сложном. Давно известный факт, что структурированная подача/прием материала улучшает качество процесса. И поэтому, для меня, странно рассуждать о статике не имея представления о типах. А имея понимание о сути вопроса, факт2 объясняется сам собой, а то непонятно как язык может защищать от ошибок, особенно когда в студии этим занимается синтаксический анализатор кода)). Такто, в сишарпе есть много вариантов выстрелить себе в ногу, и все они достаточно высокоуровневые.. Ну и таа далее
@dvdrelin
@dvdrelin 3 жыл бұрын
@@SBeregovoyRUPS может всетаки для чего?))
@omoloni
@omoloni 3 жыл бұрын
последнее время думал что статик хранится в оперативной памяти и боялся его часто использовать
@SBeregovoyRU
@SBeregovoyRU 3 жыл бұрын
ну так вообще всё хранится в оперативной памяти после запуска программы
@sergeynovikov7049
@sergeynovikov7049 3 жыл бұрын
Я думал будут комментарии про обиженных сварщиков))
@padla6304
@padla6304 Жыл бұрын
ты обещал мне 150 лет жизни смотри если помру раньше приду за тобой
@StopSmile1
@StopSmile1 3 жыл бұрын
Я думаю він Apple.
@user-uw3rr1jn9q
@user-uw3rr1jn9q 2 жыл бұрын
Ничего не поятнооооо опять!😮
@user-wn8mw8bc3c
@user-wn8mw8bc3c 8 ай бұрын
блин, полчаса, ну одной минуты достаточно, тебе что, делать по жизни нечего
@igorcoolman
@igorcoolman 3 жыл бұрын
мне кажется это можно было за 10 минут рассказать.
@SBeregovoyRU
@SBeregovoyRU 3 жыл бұрын
возможно, но у меня свое понимание как и что рассказывать.
@ashimovroman
@ashimovroman 3 жыл бұрын
Да можно было и за 3 минуты рассказать. Только толку от этого мало для изучения и понимания.
@ashimovroman
@ashimovroman 3 жыл бұрын
@@SBeregovoyRU Абсолютно правильное понимание!
@SBeregovoyRU
@SBeregovoyRU 3 жыл бұрын
@@ashimovroman Спасибо за поддержку
@KREKER8331
@KREKER8331 3 жыл бұрын
Просто есть люди которым хочется всего и побыстрее. А потом начинаются вопросы - "А ПАЧЕМУ ТАК ВСЕ СЛОЖНА??" Спасибо за урок!
@olegjordan7527
@olegjordan7527 Жыл бұрын
Спасибо, Степан! Отличный урок🙂
Backstage 🤫 tutorial #elsarca #tiktok
00:13
Elsa Arca
Рет қаралды 46 МЛН
Универ. 10 лет спустя - ВСЕ СЕРИИ ПОДРЯД
9:04:59
Комедии 2023
Рет қаралды 2,4 МЛН
OMG😳 #tiktok #shorts #potapova_blog
00:58
Potapova_blog
Рет қаралды 2,9 МЛН
static в C#
35:58
PRO CODING
Рет қаралды 4,2 М.
ВЫБИРАЕМ ЯЗЫК ПРОГРАММИРОВАНИЯ ))))
25:08
Вопросы собеседования на C# программиста
21:04
Програмысли Влог
Рет қаралды 62 М.
ПОКУПКА ТЕЛЕФОНА С АВИТО?🤭
1:00
Корнеич
Рет қаралды 3 МЛН
APPLE совершила РЕВОЛЮЦИЮ!
0:39
ÉЖИ АКСЁНОВ
Рет қаралды 3,1 МЛН
Секретный смартфон Apple без камеры для работы на АЭС
0:22
Купил этот ваш VR.
37:21
Ремонтяш
Рет қаралды 285 М.