Он позволяет моментально получить значение по умолчанию для любого типа. Полезно при обнулении переменных, возврате «пустых» значений.
Что важно знать:
• Для значимых типов возвращает «нулевое» значение (0, false, DateTime.MinValue)
• Для ссылочных типов возвращает null — удобно для безопасной инициализации.
• В обобщениях даёт правильное значение по умолчанию, не зная тип заранее.
При работе с большими кодовыми базами default экономит время: помогает сбрасывать поля структур без вызова конструкторов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28👍12🤝5❤4
This media is not supported in your browser
VIEW IN TELEGRAM
База реальных собеседований от Т-Банк, Яндекса, Сбера и 100+ топовых компаний. 10 000+ вопросов по Frontend, Backend, DevOps и другим направлениям. Удобный тренажёр, персональная статистика и еженедельные обновления.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥6❤5
Расширяем string своим методом — ToSlug.
Сейчас научимся добавлять собственные методы к стандартным типам в C#, не изменяя их код и не создавая подклассов.
Подключим стандартную библиотеку:
Допустим, у нас есть строка с названием статьи, и мы хотим превратить её в "slug" — пригодную для URL или имён файлов. У стандартного
Создаём статический класс и описываем метод, указав
Теперь мы можем вызывать
Вот что получится при запуске:
🔥 Таким образом ты можешь элегантно добавлять поведение к любым типам — без наследования и без лишнего кода.
➡️ C# Ready | #практика
Сейчас научимся добавлять собственные методы к стандартным типам в C#, не изменяя их код и не создавая подклассов.
Подключим стандартную библиотеку:
using System;
Допустим, у нас есть строка с названием статьи, и мы хотим превратить её в "slug" — пригодную для URL или имён файлов. У стандартного
string
такого метода нет, но мы можем добавить его сами через метод-расширение.Создаём статический класс и описываем метод, указав
this
перед первым параметром:static class StringExtensions
{
static string ToSlug(this string input)
{
return input
.ToLower()
.Replace(" ", "-")
.Replace(".", "")
.Replace(",", "");
}
}
Теперь мы можем вызывать
.ToSlug()
прямо у строки — будто это встроенный метод:string headline = "Новости дня, кратко и ясно.";
string slug = headline.ToSlug();
Console.WriteLine(slug);
Вот что получится при запуске:
новости-дня-кратко-и-ясно
🔥 Таким образом ты можешь элегантно добавлять поведение к любым типам — без наследования и без лишнего кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24👍11❤7
👍16🔥6❤5
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29❤6👍4🤝3
This media is not supported in your browser
VIEW IN TELEGRAM
Это кладезь лаконичных сниппетов: LINQ-агрегации, работу со строками, файлами, форматированием и другие советы можно просто скопировать и вставить в свой проект.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍7🔥6
Unity предлагает два способа: напрямую через клавиши или через действия из
Input
Manager
. Оба метода позволяют легко реагировать на действия пользователя.Ключевые моменты:
• Input.GetKey() и его аналоги читают физические клавиши — подойдут для прототипов
• Input.GetButton() использует имена действий — удобно для масштабируемых настроек
• Методы вызываются в Update() и работают каждый кадр
Низкоуровневый и абстрактный подход — выбирай в зависимости от целей и размера проекта.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26👍14❤10🤝10
Фильтруем списки эффективно с ToHashSet!
Сейчас научимся быстро отбирать элементы одного списка, проверяя, есть ли они в другом. Это избавит от лишних проходов и ускорит работу кода.
Подключим нужные библиотеки — всё уже есть в стандартной библиотеке:
Допустим, мы хотим оставить только избранные фрукты. Без оптимизации код выглядит так:
Если списки большие,
Теперь преобразуем второй список в
🔥 Без
➡️ C# Ready | #практика
Сейчас научимся быстро отбирать элементы одного списка, проверяя, есть ли они в другом. Это избавит от лишних проходов и ускорит работу кода.
Подключим нужные библиотеки — всё уже есть в стандартной библиотеке:
using System;
using System.Collections.Generic;
using System.Linq;
Допустим, мы хотим оставить только избранные фрукты. Без оптимизации код выглядит так:
List<string> fruits = new() { "apple", "banana", "mango", "orange" };
string[] favorite = { "banana", "kiwi", "orange" };
var selected = fruits.Where(f => favorite.Contains(f)).ToList();
Если списки большие,
Contains()
будет работать медленно — каждый раз проходит по массиву.Теперь преобразуем второй список в
HashSet
— поиск в нём быстрее:List<string> fruits = new() { "apple", "banana", "mango", "orange" };
string[] favorite = { "banana", "kiwi", "orange" };
HashSet<string> favSet = favorite.ToHashSet();
var selected = fruits.Where(f => favSet.Contains(f)).ToList();
🔥 Без
ToHashSet()
код искал «банан» в массиве снова и снова. С HashSet
— это почти мгновенная проверка.Please open Telegram to view this post
VIEW IN TELEGRAM
❤15🔥9👍8
👍14🔥8❤5