Он отключает проверки типов на этапе компиляции, позволяя вызывать методы и обращаться к свойствам без точного указания типа. Удобно, когда структура данных неизвестна заранее.
Что важно знать:
• Позволяет работать с JSON без создания классов.
• Подходит для COM-объектов и слабо типизированных API.
• Ошибки появляются только во время выполнения.
Поэтому
dynamic
полезен, когда нужно быстро взаимодействовать с внешними данными или писать универсальный код.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32❤10🤝7👍5
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25❤12👍7🤝4
Сегодня реализуем простой алгоритм частотного анализа: определим, какое слово встречается чаще всего в произвольном тексте.
В этой задаче:
• Получаем строку от пользователя через консоль
• Убираем знаки препинания и приводим все слова к нижнему регистру
• Определяем слово с наибольшим числом повторений и выводим его
Этот подход полезен для анализа логов, выделения ключевых слов и предварительной обработки текста.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥33👍14❤6
Создаём record-типы и копируем объекты с with!
Сейчас научимся создавать неизменяемые типы с помощью
Для начала подключим нужную библиотеку, она уже есть в стандартной поставке:
Теперь опишем тип
Допустим, нам нужно изменить возраст пользователя. Вместо изменения мы создадим копию с новым значением, используя
Вот что получится при запуске:
🔥 Таким образом ты получаешь иммутабельные объекты и можешь удобно копировать их с изменениями — без лишнего кода и side-effects.
➡️ C# Ready | #практика
Сейчас научимся создавать неизменяемые типы с помощью
record
и копировать их, меняя отдельные поля. Это удобно для хранения конфигураций, данных пользователя или состояния UI.Для начала подключим нужную библиотеку, она уже есть в стандартной поставке:
using System;
Теперь опишем тип
record
— это специальный синтаксис для неизменяемых объектов, и создадим первый экземпляр:public record User(string Name, int Age);
User original = new User("Alice", 30);
Допустим, нам нужно изменить возраст пользователя. Вместо изменения мы создадим копию с новым значением, используя
with
:User updated = original with { Age = 31 };
Console.WriteLine(original);
Console.WriteLine(updated);
Вот что получится при запуске:
User { Name = Alice, Age = 30 }
User { Name = Alice, Age = 31 }
🔥 Таким образом ты получаешь иммутабельные объекты и можешь удобно копировать их с изменениями — без лишнего кода и side-effects.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍7🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Здесь собраны пошаговые гайды по базовому синтаксису C#, объектно-ориентированному программированию, LINQ, async/await, работе с SQLite, файловой системой и многим другим.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥6❤5
Корутины позволяют просто управлять временем и задержками без нагромождения логики в Update. Это метод, который приостанавливает выполнение и продолжается в нужный момент.
Ключевые моменты:
• Это обычные методы с IEnumerator, которые могут "засыпать" и "просыпаться".
• Вместо ручного счёта времени: yield return new WaitForSeconds(2) — и готово.
• Можно вызывать одну корутину из другой — удобно и читаемо.
Они особенно полезны для анимаций, эффектов, плавных переходов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23🤝12❤9👍4