Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4❤3
На картинке — компактная визуальная памятка по основным командам Git и их логике работы: создание и клонирование репозитория, отслеживание изменений, работа с ветками, обновление данных, просмотр истории, откаты и разрешение конфликтов.
Сохрани, чтобы быстрее ориентироваться в Git и не путаться в командах при работе с проектами.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤3👍2
Например, SSE позволяет серверу мгновенно отправлять обновления клиенту через обычный HTTP, а встроенный SSE API в .NET 10 упрощает реализацию realtime-уведомлений.
На картинке — краткая схема работы SSE: от простого endpoint до переподключения клиентов, replay событий и фильтрации пользователей.
Сохрани, чтобы не потерять!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4🔥2
record — удобно создаём типы для хранения данных!
Иногда нужно создать класс, который просто хранит данные: имя, возраст, email или другие значения.
Обычно для этого пишут обычный класс:
Такой код рабочий, но для простых моделей данных он получается многословным.
В C# можно использовать
Теперь создадим объект и выведем его в консоль:
Вот что получится при запуске:
🔥
➡️ C# Ready | #практика
Иногда нужно создать класс, который просто хранит данные: имя, возраст, email или другие значения.
Обычно для этого пишут обычный класс:
class User
{
public string Name { get; set; }
public int Age { get; set; }
public User(string name, int age)
{
Name = name;
Age = age;
}
}
Такой код рабочий, но для простых моделей данных он получается многословным.
В C# можно использовать
record, чтобы описывать такие типы короче:csharp id="svqk8g"
using System;
record User(string Name, int Age);
Теперь создадим объект и выведем его в консоль:
csharp id="m79oqr"
User user = new User("Анна", 25);
Console.WriteLine(user);
Вот что получится при запуске:
csharp id="ww9ua2"
User { Name = Анна, Age = 25 }
record особенно удобен для моделей, где важны сами данные, а не сложное поведение объекта.record помогает писать короче и удобнее, когда тип нужен в первую очередь для хранения данныхPlease open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍3❤2
This media is not supported in your browser
VIEW IN TELEGRAM
AI-сервис, который помогает превращать заметки, PDF, статьи, видео и другие материалы в карточки для обучения и квизы. Нейросеть автоматически выделяет главное, генерирует вопросы и помогает быстрее запоминать информацию с помощью повторения и интерактивного формата обучения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4🔥3
С выходом C# 8 появился новый способ писать условия декларативно и лаконично.
Что важно знать:
• Возвращает результат без лишних строк в вашем коде.
• Упрощает обработку разных вариантов данных в одном месте.
• Обеспечивает явную проверку и надёжность кода при изменениях.
Так вы получите более читаемые условия и не пропустите ни одного случая.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24👍6🤝6❤3
Срезы коллекций — когда нужна часть, а лишнее не нужно!
Иногда требуется взять только кусок массива или строки: первые элементы, последние — или вырезать середину. Раньше ради этого писали
В C# 8 появились операторы диапазонов
Создадим массив данных:
Берём элементы со 2-го по 3-й (правый край не включён):
Последние два элемента:
Всё, кроме первых двух и последних двух:
То же со строкой — вытаскиваем слово «Index»:
🔥
➡️ C# Ready | #практика
Иногда требуется взять только кусок массива или строки: первые элементы, последние — или вырезать середину. Раньше ради этого писали
Substring, Skip / Take и плодили лишние аллокации. В C# 8 появились операторы диапазонов
.. и индексов с конца ^, которые делают такие операции короче и нагляднее.Создадим массив данных:
int[] data = { 10, 20, 30, 40, 50, 60 };Берём элементы со 2-го по 3-й (правый край не включён):
int[] middle = data[1..3]; // {20, 30}Последние два элемента:
int[] lastTwo = data[^2..]; // {50, 60}Всё, кроме первых двух и последних двух:
int[] withoutEdges = data[2..^2]; // {30, 40}То же со строкой — вытаскиваем слово «Index»:
string text = "Range & Index";
string word = text[^5..]; // "Index"
🔥
Range и Index делают код короче, читаемее и позволяют работать с Span<T> без копирования: меньше аллокаций — выше производительность!Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤4👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Если нужно быстро понять сложную тему, эта нейросеть автоматически превращает длинный текст, видео или статью в структурированную mind-map. Полезно для подготовки к экзаменам, изучения новой темы или планирования проектов.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤4👍2
Он отключает проверки типов на этапе компиляции, позволяя вызывать методы и обращаться к свойствам без точного указания типа. Удобно, когда структура данных неизвестна заранее.
Что важно знать:
• Позволяет работать с JSON без создания классов.
• Подходит для COM-объектов и слабо типизированных API.
• Ошибки появляются только во время выполнения.
Поэтому
dynamic полезен, когда нужно быстро взаимодействовать с внешними данными или писать универсальный код.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤4👍4