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

Автор: @energy_it

Реклама на бирже: https://telega.in/c/csharp_ready
加入频道
📖 C# для начинающих

Книга охватывает ключевые концепции C#, включая переменные, циклы, методы и классы. Благодаря простому языку и множеству примеров, читатели быстро освоят основы программирования и начнут создавать приложения.

Автор: Борис Пахомов
Год: 2014


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

➡️ C# Ready | #книга
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2🤝2
🖥 Продвинутая работа с неизменяемыми типами в C#

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


Рассмотрим ключевые аспекты и способы создания неизменяемых объектов:

1. Использование readonly полей в классах
Readonly поля позволяют задавать значения только при их инициализации или в конструкторе:
public class ImmutablePoint
{
public readonly int X;
public readonly int Y;

public ImmutablePoint(int x, int y)
{
X = x;
Y = y;
}
}


2. record типы для автоматической неизменяемости
В C# начиная с версии 9.0, появились record типы, которые автоматически предоставляют неизменяемость и удобные методы работы с ними:
public record ImmutablePoint(int X, int Y);


В отличие от классов, record типы предоставляют встроенные методы для сравнения объектов и копирования с изменениями:
var point1 = new ImmutablePoint(2, 3);
var point2 = point1 with { X = 5 };
Console.WriteLine(point2); // вывод: ImmutablePoint { X = 5, Y = 3 }


3. Создание полностью неизменяемых коллекций
При работе с коллекциями можно использовать типы из библиотеки System.Collections.Immutable:
using System.Collections.Immutable;
var immutableList = ImmutableList.Create(1, 2, 3);
immutableList = immutableList.Add(4);
Console.WriteLine(string.Join(", ", immutableList)); // вывод: 1,
2, 3, 4


➡️ C# Ready | #техсобес
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3🤝1
🖥 Создаем простой таймер!

В этом посте мы рассмотрим простое создание таймера на C# с добавлением многопоточности. Изучим некоторые вещи:

- Многопоточность для параллельной работы
- Использование потоков
- Реализация метода действия
- Запуск таймера


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

C# Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥34🤝12👍7👎2
This media is not supported in your browser
VIEW IN TELEGRAM
DotNetPerls сайт с множеством примеров кода и объяснений по различным аспектам C#. Полезен для изучения конкретных тем

📌 Ссылочка: dotnetperls.com

➡️ C# Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥3
🔥45😁11
🔓 Интересная статья, как шифровать данные на C#

В этой статье:
• Одноразовый блокнот
• Потоковый шифр

• Хеш функция

Продолжить читать можешь на Habr!


C# Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍3
📖 Программируем на C# 8.0

Книга предназначена как для начинающих, так и для опытных разработчиков, желающих углубить свои знания о C# и его новых возможностях

Автор: Иэн Гриффитс
Год: 2021


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

➡️ C# Ready | #книга
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥21
🖥 Давайте разберемся с делегатами

Пришло время рассмотреть 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