C# Ready | Unity
7.59K subscribers
659 photos
38 videos
324 links
Авторский канал по разработке на C# и Unity.
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Автор: @energy_it

Реклама на бирже: https://telega.in/c/csharp_ready
加入频道
🖥 Давайте разберемся с делегатами

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

В этом посте мы изучим работу с ними и различные вариации их использования:

- Использование
- Анонимные методы
- События и делегаты


🔥 — если узнал новое
🤝 если уже пользовался

C# Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18🤝12👍3
😁45🔥4🤝2
🖥 Неочевидные особенности C#: Ключевое слово yield и ленивые вычисления

Сегодня разберем мощную, но часто недооцененную особенность C# — использование yield для создания ленивых последовательностей. Эта техника позволяет экономить память и избегать излишних вычислений

Ключевое слово yield позволяет вернуть значение из метода-итератора без завершения его работы. Оно сохраняет состояние метода, чтобы продолжить выполнение при следующем вызове.

Для примера сделаем простую генерацию чисел:
IEnumerable<int> GetNumbers() {
for (int i = 1; i <= 5; i++) {
yield return i;
// Возвращает текущее значение и приостанавливает выполнение
}
}
foreach (var num in GetNumbers()) {
Console.WriteLine(num);
}

Вывод:
1  
2
3
4
5


Здесь метод GetNumbers не создает полный список в памяти. Значения генерируются только тогда, когда итератор запрашивает следующий элемент.

Практическое применение yield особенно полезен при работе с большими данными. Например, для фильтрации логов:
IEnumerable<string> FilterLogs(IEnumerable<string> logs) {
foreach (var log in logs) {
if (log.Contains("ERROR")) {
yield return log;
// Возвращает только нужные строки
}
}
}
var logs = new List<string> { "INFO: Start", "ERROR: Crash", "INFO: End" };
foreach (var log in FilterLogs(logs)) {
Console.WriteLine(log);
}

Вывод:
ERROR: Crash


🔥 Используйте yield, чтобы делать код компактнее, эффективнее и читаемее!

C# Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥8🤝3
This media is not supported in your browser
VIEW IN TELEGRAM
Metanit — Платформа, на которой доступно множество полезных материалов для обучения программированию. Здесь можно найти ресурсы по и разным языкам, а каждое пособие содержит примеры кода

Ссылочка: metanit.com

➡️ C# Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥8🤝2
🖥 Создадим расширяющие методы

В этом посте рассмотрим два примера расширяющих методов в C#, которые позволяют улучшать типы и создавать более читаемый код. Вы узнаете про:

- Создание простого расширяющего метода
- Использование расширяющего метода
- Расширение встроенного типа с параметром
- Использование встроенного типа с параметром


🔥 — если узнал новое
🤝 если уже пользовался

C# Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18🤝8👍4
📖 CLR через C#

В этом произведении автор подробно объясняет, как работает CLR, и как разработчики могут использовать его возможности для создания эффективных и производительных приложений

Автор: Джеффри Рихтер
Год: 2012


⬇️ Скачать книгу

➡️ C# Ready | #книга
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥5🤝3
👍12
Что будет в консоли?
Anonymous Quiz
21%
A
54%
B
16%
C
9%
D
👍9
This media is not supported in your browser
VIEW IN TELEGRAM
Hackerrank — сайт для решения задачек. Платформа поддерживает многие популярные языки программирования. У каждой задачи есть уровень сложности, а решать их можно прямо во встроенном редакторе кода

Ссылочка: hackerrank.com

➡️ C# Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4🤝1
🖥 Рассмотрим полезные методы для работы с данными

string.Join — Объединяет элементы массива или коллекции в строку с указанным разделителем, что полезно для форматирования данных

Enumerable.Where — Позволяет отфильтровать коллекцию по заданному условию, упрощая работу с LINQ-запросами

🔥 — если узнал новое
🤝 если уже пользовался

C# Ready | #метод
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17🤝8👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Знаете про Obsidian?

Удивительный инструмент для ведения заметок, который сразу привлек мое внимание своей простотой и функциональностью. Новичкам будет очень полезно вести конспекты и другие заметки на этой платформе

Ссылочка: obsidian.md

➡️ C# Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍4
🖥 Коллекции и их особенности

Коллекции в C# предоставляют гибкие структуры данных для хранения и обработки элементов. Рассмотрим несколько популярных вариантов.

1. Разница между List и Array
List динамически изменяет размер, в отличие от фиксированного размера массива:
var numbers = new List<int> { 1, 2, 3 };
numbers.Add(4);
Console.WriteLine(numbers.Count); // 4


2. Использование Dictionary для пар ключ-значение
Dictionary обеспечивает быстрый доступ к значениям по ключу:
var dict = new Dictionary<string, int> { ["apple"] = 1, ["banana"] = 2 };
Console.WriteLine(dict["banana"]); // 2


3. Очереди с Queue
Queue использует подход FIFO (первым вошел — первым вышел):
var queue = new Queue<int>();
queue.Enqueue(1);
queue.Enqueue(2);
Console.WriteLine(queue.Dequeue()); // 1


4. Стек с Stack
Stack следует подходу LIFO (последним вошел — первым вышел):
var stack = new Stack<int>();
stack.Push(1);
stack.Push(2);
Console.WriteLine(stack.Pop()); // 2


➡️ C# Ready | #техсобес
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥6🤝3