В этой шпаргалке — разбор кортежей и деконструкции в C#: как легко группировать данные без создания классов, обращаться к элементам по имени и распаковывать значения в переменные. Они упрощают работу с данными, делая код выразительным и лаконичным.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32❤11👍8🤝6
Меняя схему управления один раз, ты получаешь плавный переход между клавиатурой, геймпадом и любым новым контроллером без лишних правок в коде.
В этом гайде:
• Экономим время на настройку разных кнопок сразу;
• Упрощаем добавление новых контроллеров без переработки логики;
• Делаем игру доступной широкому числу игроков мгновенно.
Попробуй новую систему ввода, и твой проект сразу станет гибче, чище и дружелюбнее к игрокам.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥36🤝12❤8👍5
Лайфхак для target-typed new!
С C# 9 вы можете упростить создание объектов, позволяя компилятору выводить тип из контекста:
В этом блоке мы создаём коллекции: список строк и словарь, при этом тип объектов не дублируется в правой части:
Здесь показывается передача нового объекта в метод. Компилятор понимает, что
🔥 Определение класса остаётся обычным — конструктор сохраняет имя, а дальше вы можете использовать
➡️ C# Ready | #практика
С C# 9 вы можете упростить создание объектов, позволяя компилятору выводить тип из контекста:
List<string> names = new() { "Alice", "Bob", "Charlie" };
Dictionary<int, string> map = new()
{
[1] = "One",
[2] = "Two"
};В этом блоке мы создаём коллекции: список строк и словарь, при этом тип объектов не дублируется в правой части:
void PrintPerson(Person p) => Console.WriteLine(p.Name);
PrintPerson(new("Иван"));
Здесь показывается передача нового объекта в метод. Компилятор понимает, что
new("Иван") создаёт Person:class Person
{
public string Name { get; }
public Person(string name) => Name = name;
}
🔥 Определение класса остаётся обычным — конструктор сохраняет имя, а дальше вы можете использовать
new("…") там, где ожидается Person.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤6👍3🤝1
В простом окне терминала рождается динамика стратегии — всего девять клеток, но достаточно, чтобы почувствовать азарт и победу в чистом виде.
В этой задаче:
• Показывает, как из обычного ввода сделать живую механику;
• Учит коду реагировать на игрока, как на событие;
• Демонстрирует, что даже консоль может быть интерактивной.
Игра заканчивается быстро, но ощущение победы остаётся дольше, чем кажется.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12🔥11👍5🤝3
Как работать с многострочными строками без «+» и «\n»?
При вставке длинных
До C# 11 приходилось писать так:
С C# 11 можно использовать raw-строки:
🔥 Это позволяет вставлять
➡️ C# Ready | #совет
При вставке длинных
SQL, JSON или других текстовых фрагментов код засоряется экранированием и конкатенациями, из-за чего теряется читаемость и становится сложнее вносить правки.До C# 11 приходилось писать так:
var sql = "SELECT Id, Name\n" +
"FROM Users\n" +
"WHERE Name LIKE '%Иван%'";
С C# 11 можно использовать raw-строки:
var sql = """
SELECT Id, Name
FROM Users
WHERE Name LIKE '%Иван%'
""";
🔥 Это позволяет вставлять
SQL, JSON, XML и любые другие большие тексты без экранирования и конкатенаций — код чище и понятнее.Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥8❤7
В этой шпаргалке вы узнаете, как грамотно управлять культурными настройками приложения: менять формат дат и чисел под привычки пользователя, использовать инвариантные форматы для надёжной сериализации, обращаться к кешированным объектам по коду языка и на лету адаптировать шаблоны выводаPlease open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16❤5🤝5👍2