Коллекции в C# предоставляют гибкие структуры данных для хранения и обработки элементов. Рассмотрим несколько популярных вариантов.
1. Разница между List и Array
List
динамически изменяет размер, в отличие от фиксированного размера массива:var numbers = new List<int> { 1, 2, 3 };
numbers.Add(4);
Console.WriteLine(numbers.Count); // 4
2. Использование Dictionary для пар ключ-значение
Dictionary
обеспечивает быстрый доступ к значениям по ключу:var dict = new Dictionary<string, int> { ["apple"] = 1, ["banana"] = 2 };
Console.WriteLine(dict["banana"]); // 2
3. Очереди с Queue
Queue
использует подход FIFO (первым вошел — первым вышел):var queue = new Queue<int>();
queue.Enqueue(1);
queue.Enqueue(2);
Console.WriteLine(queue.Dequeue()); // 1
4. Стек с Stack
Stack
следует подходу LIFO (последним вошел — первым вышел):var stack = new Stack<int>();
stack.Push(1);
stack.Push(2);
Console.WriteLine(stack.Pop()); // 2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥6🤝3
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18🤝6👍5
Исключения крайне важны при написании кода, не везде вас спасет if else, в этом посте разберем основные принципы работы исключений.
1. Использование блоков try и catch: для перехвата и обработки исключений в коде:
try {
int result = 10 / int.Parse("0");
} catch (DivideByZeroException ex) {
Console.WriteLine("Деление на ноль: " + ex.Message);
}
2. Создание пользовательских исключений: для более специфичной обработки ошибок:
public class CustomException : Exception {
public CustomException(string message) : base(message) {}
}
throw new CustomException("Произошла ошибка!");
3. Использование finally: для выполнения кода независимо от того, произошло исключение или нет:
try {
// код
} catch (Exception ex) {
Console.WriteLine(ex.Message);
} finally {
Console.WriteLine("Этот код выполнится в любом случае.");
}
4. Множественные catch блоки: для обработки различных типов исключений отдельно:
try {
// код
} catch (FormatException ex) {
Console.WriteLine("Неверный формат: " + ex.Message);
} catch (DivideByZeroException ex) {
Console.WriteLine("Деление на ноль: " + ex.Message);
}
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥5🤝3
📖 Паттерны проектирования на C#
⬇️ Скачать книгу
➡️ C# Ready | #книга
Книга предоставляет читателям практическое руководство по использованию классических шаблонов проектирования в C#, позволяя легче решать распространенные задачи разработки и улучшать структуру кода.
Автор: Рыбанов А.А.
Год: 2023
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3
•
ConvertAll()
— этот метод позволяет легко преобразовать каждый элемент списка в новый тип, используя делегаты для гибкости и удобства.•
TrueForAll()
— идеальный способ проверить, соответствуют ли все элементы вашего списка заданному условию, гарантируя, что все они под одной гребенкой.🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17🤝3👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Наткнулся значит я на Zenva. И сразу рассказываю про этот сайт)
— Это замечательный ресурс для всех, кто хочет погрузиться в мир разработки игр. Сайт предлагает множество учебных материалов, включая пошаговые руководства, видеоуроки и примеры кода.
📌 Ссылочка: gamedevacademy.org
➡️ C# Ready | #ресурс
— Это замечательный ресурс для всех, кто хочет погрузиться в мир разработки игр. Сайт предлагает множество учебных материалов, включая пошаговые руководства, видеоуроки и примеры кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝24🔥11👍5
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥4🤝2
И сейчас разберемся с делегатами и лямбда-выражениями в сишарпе
Они позволяют передавать методы как параметры и реализовывать функциональный стиль программирования в C#.
1. Делегаты для передачи методов — служат типами для хранения ссылок на методы:
2. Использование лямбда-выражений — они упрощают синтаксис анонимных функций:
3. Передача делегатов в методы — делегаты также могут использоваться для передачи логики в метод:
Функция PerformOperation принимает логику в виде делегата и применяет ее
🔥 Про что ещё хотите увидеть разбор? Делись своим мнением в комментах под постом!
➡️ C# Ready | #техсобес
Они позволяют передавать методы как параметры и реализовывать функциональный стиль программирования в C#.
1. Делегаты для передачи методов — служат типами для хранения ссылок на методы:
delegate int Operation(int a, int b);
Operation add = (x, y) => x + y;
add(3, 4); // вернет 7
2. Использование лямбда-выражений — они упрощают синтаксис анонимных функций:
Func<int, int, int> multiply = (x, y) => x * y;
multiply(3, 4); // вернет 12
3. Передача делегатов в методы — делегаты также могут использоваться для передачи логики в метод:
void PerformOperation(int x, int y, Func<int, int, int> operation) {
Console.WriteLine(operation(x, y));
}
PerformOperation(5, 6, (a, b) => a - b); // выведет -1
Функция PerformOperation принимает логику в виде делегата и применяет ее
🔥 Про что ещё хотите увидеть разбор? Делись своим мнением в комментах под постом!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥4
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍4🤝4