Самый просто ответ. При статической типизации тип переменных определяется на этапе компиляции, а в динамической в процессе выполнения. Так же можно отметить, что при статической типизации код становится чуть понятнее за счет явных типов, но при динамической можно упростить код, ведь одной переменной может хватить для одного класса
Начнем с места хранения. Значимые типы храниться в стеке. Ссылочные типы хранятся в куче, а ссылки на них в стеке. При попытке скопировать значимый тип - мы копируем значение. При попытке скопировать ссылочный тип - мы копируем только ссылку
Ref - ключевое слово, которое позволяет передавать не значение, а ссылку на переменную где хранится это значение. Меняя значения внутри метода мы меняем значение переменной которую передовали
Out - ключевое слово, которое обязует проинициализировать параметр метода внутри. Бывает полезно когда нужно вернуть несколько типов из одного метода
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18🦄1
Private - объект виден только в текущем классе
Private protected - то же что и protected, но только внутри одной dll сборки
Protected - объекты видны в пределах текущего класса и его наследников
Internal - доступ к этим объектам имеют только объекты и текущей сборки. По сути тот же public, но доступ для объектов внутри своей dll
Protected internal - то же что и internal, но в добавок виден наследникам из других dll сборок
Public - у этого модификатора нет ограничений по доступу
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4🦄1
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍2🦄1
Суть замыкания заключается в том, что происходит изменение переменной внешней функции через вызовы внутренней функции. Мы бы смогли добиться того же самого эффекта, если бы сделали X полем класса. Тогда бы при вызове метода он также увеличивал X на один при каждом вызове. Таким образом замыкание избавляет нас от создания лишнего поля
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🦄1
Стоит понимать, что создавая делегат мы создаем новый тип функции. При создании экземпляра - мы добавляем в него любые методы которые подходят по сигнатуре. Сколько методов добавим - столько и активируется при вызове делегата. А если остались вопросы -
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥2🦄1
Array: Массив в C# имеет фиксированный размер, который нужно задавать при его создании. После создания массива его размер изменить нельзя. Если необходимо увеличить или уменьшить количество элементов, придется создавать новый массив и копировать в него данные
List: Список (List<t>) является динамической коллекцией. Его размер может изменяться в процессе выполнения программы, что делает его более гибким в работе. Добавление и удаление элементов осуществляется проще и быстрее
Array: У массивов есть ограниченное количество встроенных методов и свойств. Например, они имеют свойство Length, которое показывает количество элементов в массиве
List: Списки имеют обширный набор методов для работы с данными, такие как Add(), Remove(), Sort(), Contains() и другие, что делает работу с коллекциями гораздо более удобной. Кроме того, у списка есть свойство Count, которое возвращает количество элементов в списке
Array: Массив может хранить элементы одного типа. Тип массива определяется при его создании и, следовательно, все элементы должны соответствовать этому типу
List: Список также типизирован, но при этом он более абстрактен. Вы можете использовать генерацию типов (generics), и это позволяет создавать списки любого типа без необходимости указывать конкретный тип при работе с данными
Array: Массивы могут быть более производительными при доступе к элементам, так как они расположены в памяти последовательно. Это позволяет значительно ускорить операции чтения и записи
List: Хотя списки могут быть немного медленнее из-за своей динамической природы и управления памятью, они предлагают лучшую гибкость, особенно при частых изменениях в количестве элементов
Выбор между массивом и списком в C# зависит от конкретных потребностей вашего приложения. Если вам нужен фиксированный набор данных и требуется высокая производительность, массив может быть лучшим выбором. Если же вы ожидаете частые изменения в размерах коллекции или необходимость в более простых операциях, таких как добавление и удаление элементов, то список будет более подходящим вариантом. А если остались вопросы -
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2🦄1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🤮2🦄2🥰1
Код, который может вызвать исключение, помещается в блок try. Если в этом блоке происходит ошибка, выполнение прекращается, и управление передается в соответствующий блок catch
Этот блок предназначен для обработки исключений. В блоке catch вы можете указать тип исключения, которое хотите обработать, что позволяет детализировать обработку ошибок
Этот блок выполняется всегда, независимо от того, произошло ли исключение или нет. Он часто используется для освобождения ресурсов, например, закрытия файлов или соединений
Если код в блоке try выполняется без ошибок, то блоки catch будут пропущены, и управление перейдет к блоку finally
Если в блоке try возникает исключение, выполнение прекращается, и управление передается первому соответствующему блоку catch, который может обработать это исключение
В блоке catch обрабатывается ошибка — вы можете вывести сообщение об ошибке, логировать её или произвести другие действия
После выполнения блока catch (либо если его не было, при отсутствии исключения), управление всегда переходит к блоку finally. Это полезно, например, для закрытия ресурсов
Обработка исключений в C# с использованием блоков try, catch и finally помогает сделать программы более устойчивыми к ошибкам. Этот подход позволяет разработчикам контролировать выполнение кода и управлять ресурсами, обеспечивая корректную работу приложений даже в случае возникновения исключений. Если хотите совершать меньше ошибок на пути в GameDev -
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🦄3👍1🤔1🤡1
Если в работаете над игрой, присоединяйтесь бесплатно к конференции, приняв участие в выставке разработчиков! У каждой команды будет один бесплатный и возможность получить дополнительный, собственное место в экспозоне, а также шанс найти инвесторов или издателей. Заявки принимаются до 13 октября вот здесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Forwarded from Savely Teplov | Welwise Universe
Вот и прошла "Игровая Индустрия"
Я лично, к большому сожалению, приехать не смог. Однако на конференцию с двух ног залетел наш разработчик Демид и всем рассказал о Welwise Studio)
В первый день конференции Демида не пустили внутрь и он раздавал визитки на улице🫡
Однако парень не сдался и всё же пробрался на второй день😎
- Демид, поделишься своими впечатлениями?
Давайте накидаем огоньков Демиду, который гордо представлял Welwise Studio на конференции🔥 🔥 🔥
P.S. Даня на фото такой счастливый 🥹 🥰 ☺️
Я лично, к большому сожалению, приехать не смог. Однако на конференцию с двух ног залетел наш разработчик Демид и всем рассказал о Welwise Studio)
Визитки ПОЛУЧИЛИ ВСЕ, орифлейм отдыхает🌟
В первый день конференции Демида не пустили внутрь и он раздавал визитки на улице
Однако парень не сдался и всё же пробрался на второй день
- Демид, поделишься своими впечатлениями?
"Да, конечно!
На этом мероприятии была создана подходящая среда для нетворкинга: только начинающие свой путь в GameDev ребята могли получить фидбек от опытных разработчиков, а те в свою очередь могли обменяться опытом.
Ну а жаждущие дополнительной коммуникации, могли обсудить разработку игр за бутылкой пива или на перекуре. Помните, ЗОЖ - классная тема! Вы ведь не хотите оказаться в российской поликлинике?)"
Давайте накидаем огоньков Демиду, который гордо представлял Welwise Studio на конференции
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21❤9👍3
Forwarded from Штаб Гришакова
This media is not supported in your browser
VIEW IN TELEGRAM
[Последний Интенсив]
8й интенсив. Последний. Лучший.
С 22 по 24 апреля. 3 дня подряд.
Подробный и понятный план по тому, как стартовать в разработке игр. С нуля или уже имея результаты. В мобилах, яндексе или стиме.
За 3 дня мы выдадим базу и уйдем вглубь!
Я со своей стороны обещаю, что мы дадим топ контент. Все, что я понял за 6+ лет в геймдеве. Выложимся на полную.
В последний раз.
Готовьте записную книжку и стартуем во вторник в 19.00 по Мск у меня на канале.
Поставьте 🔥🔥🔥
8й интенсив. Последний. Лучший.
С 22 по 24 апреля. 3 дня подряд.
Подробный и понятный план по тому, как стартовать в разработке игр. С нуля или уже имея результаты. В мобилах, яндексе или стиме.
За 3 дня мы выдадим базу и уйдем вглубь!
Я со своей стороны обещаю, что мы дадим топ контент. Все, что я понял за 6+ лет в геймдеве. Выложимся на полную.
В последний раз.
Готовьте записную книжку и стартуем во вторник в 19.00 по Мск у меня на канале.
Поставьте 🔥🔥🔥
🔥9❤3🥰2🦄1
Сделай первую игру с нуля и получи грант на 1 000 000 рублей
Джун Джуно к вашим услугам!🔥 Я веду этот канал как участник творческой мастерской Романа Сакутина. Наша цель создавать творческие игры и радовать игроков.
Становись разработчиком игр вместе со мной здесь - https://ijunior.ru/workshop-gamedev?utm_source=telegram_workshops&utm_medium=pinned_post&utm_campaign=JuniourJuno
Джун Джуно к вашим услугам!
Становись разработчиком игр вместе со мной здесь - https://ijunior.ru/workshop-gamedev?utm_source=telegram_workshops&utm_medium=pinned_post&utm_campaign=JuniourJuno
Please open Telegram to view this post
VIEW IN TELEGRAM
ijunior.ru
Сделай первую игру с нуля и получи грант на 1 000 000 рублей
Бесплатная творческая мастерская от Романа Сакутина. Тебя ждут лекции и клуб творцов
👍5😁4🔥3❤1🕊1