С# | University
801 subscribers
172 photos
82 videos
259 links
Канал для программистов,которые изучают C#, здесь собраны все самые полезные фишки.

По рекламе: @if0rce1
Download Telegram
💥 8 шагов от новичка до профессионала: дорожная карта разработчика на C#

Рассмотрим 8 основных шагов, которые нужно сделать новичку, чтобы стать профессиональным разработчиком на С#.

#interesting | csharp_uni
⚡️4 лучших бесплатных книг по C#

Предлагаем вашему вниманию подборку самых полезных бесплатных книг по изучению C# - одного из самых популярных и востребованных языков программирования во всём мире.

#interesting | csharp_uni
⚡️Игра 2048 на C# WinForms/Game 2048 C# Windows Forms Application

В этом видео создадим игру 2048 на C# Windows Forms Application.

Смотреть видео.

#game | csharp_uni
⚡️Задача

Дано натуральное число. Определить, является ли сумма его максимальной и минимальной цифр кратной числу a.


#код | csharp_uni
⚡️Что нового в C# 11 - новые фичи языка C#

Рассматриваем основные фичи C# 11 .NET 7


Смотреть видео.

#interesting | csharp_uni
⚡️МОРСКОЙ БОЙ C# WINFORMS / C# SEA FIGHT WINAPI

В этом видео мы сделаем Морской бой и простой алгоритм для того, чтобы он составил нам противника. Все это будем делать на c# winforms.

Смотреть видео.

#game | csharp_uni
⚡️Задача на C#

Даны цифры двух двузначных чисел, записываемых в виде a2a1 и b2b1, где a1 и b1 — число единиц, a2 и b2 — число десятков. Получить цифры числа, равного сумме заданных чисел (известно, что это число двузначное). Слагаемое — двузначное число и число-результат не определять; условный оператор не использовать.

#код | csharp_uni
⚡️Как изменять строки в dotnet

Строки в dotnet являются предназначенной только для чтения последовательностью Char-ов. Об этом явно написано в документации Microsoft, посвященной строкам.

Читать статью

#interesting | csharp_uni
⚡️ИГРА АРКАНОИД НА C# WINFORMS GRAPHICS

Сегодня мы сделаем игру Арканоид на c# winforms!
Всю отрисовку делаем через класс Graphics на холсте формы.

Смотреть видео.

#game | csharp_uni
💥Синхронный запуск задачи

По умолчанию задачи запускаются асинхронно. Однако с помощью метода RunSynchronously() можно запускать синхронно

#код | csharp_uni
⚡️Задача

Из трехзначного числа x вычли его последнюю цифру. Когда результат разделили на 10, а к частному слева приписали последнюю цифру числа x, то получилось число n. Найти число x. Значение n вводится с клавиатуры, 100 ≤ n ≤ 999 и при этом число десятков в n не равно нулю.

#код | csharp_uni
⚡️СУДОКУ C# WINAPI/SUDOKU C# WINFORMS

В этом видео мы сделаем судоку на С# простым способом.

Смотреть видео.

#game | csharp_uni
💥Возвращение результатов из задач

Задачи могут не только выполняться как процедуры, но и возвращать определенные результаты:
Во-первых, чтобы получать из задачи не который результат, необходимо типизировать объект Task тем типом, объект которого мы хотим получить из задачи. Например, в примере выше мы ожидаем из задачи sumTask получить число типа int, соответственно типизируем объект Task данным типом - Task<int>.
И, во-вторых, в качестве задачи должен выполняться метод, который возвращает данный тип объекта. Так, в данном случае у нас в качестве задачи выполняется метод Sum, которая принимает два числа и на выходе возвращает их сумму - значение типа int.
Возвращаемое число будет храниться в свойстве Result: sumTask.Result. Нам не надо его приводить к типу int, оно уже само по себе будет представлять число.
При этом при обращении к свойству Result текущий поток останавливает выполнение и ждет, когда будет получен результат из выполняемой задачи.

#код | csharp_uni
⚡️Rust vs C#: два способа решить проблему ссылок в структурах

Возврат ссылки на структуру из метода, объявленную в этом самом методе, является одним из самых классических примеров "висячих ссылок". Но что если возвращается не ссылка, а структура, содержащая ссылку? И не явно, а через вызов другого метода? Как понять, где у нас явный "провис ссылки", а где нормальный код? Звучит как какая то "дичь", но подобный кейс - вполне реальная боль для авторов языков программирования.

Читать статью

#interesting | csharp_uni
DOODLE JUMP C# WINFORMS - ЧАСТЬ 1/C# DOODLE JUMP WINAPI - PART 1

В этом видео сделаем doodle jump на c#. Рисуем через Graphics.

Смотреть видео.

#game | csharp_uni
⚡️Топ-10 ошибок, найденных в C#-проектах за 2022 год

За 2022 год разработчики PVS-Studio написали много статей, в которых рассказали об ошибках, найденных в различных Open Source проектах. Пришло время подвести итоги и представить десяток самых интересных срабатываний.

#interesting | csharp_uni
Мне 27 лет. Вот список интересных вещей, которые я делал:

Разработал проект, позволяющий звонить и рассылать СМС всем незнакомым людям в радиусе 30-50 метров (демонстрировал на съемках с Моргенштерном; 20 млн просмотров).
Написал ПО (но воспользовался лишь один раз), которое имитировало 10-бальные пробки на всех дорогах Москвы в Яндекс.Картах ещё до того, как это стало мейнстримом (продемонстрировано на съемках с блогером Литвиным).
На данную тематику вел Instagram и TikTok, где большинство роликов набирало миллионы просмотров.
Находил уязвимости в Ленте, ГосУслугах, 1500 московских шлагбаумах (мой хабр-пост) и передавал информацию журналистам.
Создал OSINT-сервис для поиска профилей в Instagram по номеру телефона. 572k просмотров на Хабре.
Разработал Telegram-клиент с функцией "Двойное дно". Продвигал идею внедрить такую возможность в оригинальный клиент Telegram.

Все выше перечисленное является правдой (никаких фотошопов и фокусов). Эти задумки были реализованы исключительно с целью развития моего личного бренда и не имели экономической выгоды.

Я уже давно не занимаюсь личным брендом, поэтому новых публикаций нет, а перечисленные проекты были закрыты.

В середине ноября 2022 года я поставил себе новую цель — Разработать игру. Не казуальную, не гиперказуальную, а сложную (в техническом смысле) и насыщенную контентом игру с глубоким геймплеем.

Перед тем как расширять штат своей команды или, тем более, открывать новую игровую компанию, я хочу самостоятельно разобраться во всех аспектах разработки игр.

Возможно, у вас возникнет вопрос: Зачем лезть в техническую часть создания игры, если можно найти на аутсорсе команду и делегировать ей разработку? Примерно так я и попробовал сделать. Моя компания стала искать и нанимать Unity-разработчиков. Я успел поработать с несколькими специалистами. К сожалению, ничего дельного из этого не вышло. Качество выполненных задач от ребят меня не устраивало. Как говорится, хочешь сделать хорошо — делай сам. Ну, или так: Хочешь сделать хорошо, то разберись в теме сам, заложи архитектуру и подход к разработке, а только потом делегируй и в дальнейшем контролируй. Такой подход позволит мне контролировать процесс создания игры и получить в результате именно ту игру, которую я хочу.

Прошло уже 10 месяцев с момента старта, и я все еще в процессе обучения. Да, со временем я все больше и больше времени посвящаю написанию кода, но обучение все равно остается неотъемлемой частью процесса.

У меня большой опыт в OSINT и информационной безопасности, но в области GameDev я новичок. Мне пришлось изучать множество новых тем, и еще предстоит столько же. К счастью, многое из моего предыдущего опыта перекликается с GameDev, что облегчает изучение.

Я стараюсь конспектировать любую изученную тему. Опираясь на свой опыт, я понимаю, что со временем наш мозг "стирает" то, что кажется ему "ненужным". Конечно, "ненужная" информация на самом деле могла бы быть ценной, но мозг не консультируется с нами по данному вопросу.

Если я что-то подзабыл (случается это довольно часто), то я иду в свои заметки и через поиск нахожу нужный конспект. Если я наткнулся на отличную статью по интересующей меня теме, то конспект писать уже смысла нет. Я просто сохраняю ссылку (ну, или архивирую веб-страницу для оффлайн доступа, если есть ощущения, что через год сайт закроется). Тем не менее, действительно хороших сайтов или статей, которые бы покрывали вопрос хотя бы на 80 процентов, очень мало.

Если бы все статьи по GameDev (да и не только) были бы с крайне низким порогом входа и покрывали практически все вопросы, которые возникают у читателя, то процесс разработки продуктов мог бы ускориться на один, а то и два порядка (10-100 раз).

Когда я только начинал обучение, я осознавал, что быстро достичь своей цели не удастся. Обучение — это сложный, многоступенчатый и местами скучный процесс. Тем не менее, сейчас я чувствую, что это обучение начинает мне надоедать.
И на фоне этого "надоедания" мне пришла в голову интересная мысль...
(К сожалению, весь текст не влезает в один пост. Продолжение читайте в следующем посте).
⚡️Создание персонажей в Blender и Unity

Визуально персонажи 3D-игр имитируются с помощью использования моделей, текстур и анимаций.

#interesting | csharp_uni
⚡️Использование SQLite в Unity (Unity + SQLite)

Всем привет, данная публикация будет посвящена работе с встраиваемой реляционной базой данных SQLite в Unity. Данная статья написана новичком для новичков с целью показания работы с SQLite, предполагается, что вы знаете основы SQL. Так как в интернете нет ясного тутора для новичков, я решил занять эту нишу. В данной статье мы напишем простенький класс для работы с данной СУБД, который можно использовать для решения широкого круга задач (локализация, сохранение данных, ведение разных таблиц).

🕹 Читать статью

#interesting | csharp_uni
⚡️Создание персонажей в Blender и Unity

Визуально персонажи 3D-игр имитируются с помощью использования моделей, текстур и анимаций.

🕹 Читать статью

#interesting | csharp_uni