Исключения крайне важны при написании кода, не везде вас спасет 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
Поговорим про изменение коллекции во время итераций без возможных ошибок
В C# есть распространенная ловушка, связанная с изменением коллекций во время их обхода с использованием
Давайте разберемся, как избежать этой ошибки:
Чтобы безопасно изменять коллекцию во время итерации, используйте метод
Еще одно решение — использовать цикл
Жми 🔥 если понравился пост и делись своим мнением в комментариях!
➡️ C# Ready | #практика
В C# есть распространенная ловушка, связанная с изменением коллекций во время их обхода с использованием
foreach
. Эта ошибка может привести к исключению InvalidOperationException
Давайте разберемся, как избежать этой ошибки:
List<int> list = new List<int> { 1, 2, 3 };
foreach (var number in list){
if (number == 2){
list.Remove(number); // Ошибка: InvalidOperationException
}
}
Чтобы безопасно изменять коллекцию во время итерации, используйте метод
RemoveAll
, который позволяет работать с коллекцией без изменения её структуры во время обхода:List<int> list = new List<int> { 1, 2, 3 };
list.RemoveAll(x => x == 2); // Правильный способ
Еще одно решение — использовать цикл
for
вместо foreach
. В этом случае можно контролировать индексы и безопасно изменять коллекцию:List<int> list = new List<int> { 1, 2, 3 };
for (int i = 0; i < list.Count; i++){
if (list[i] == 2){
list.RemoveAt(i); // Удаление элемента по индексу
i--; // Уменьшаем индекс после удаления
}
}
Жми 🔥 если понравился пост и делись своим мнением в комментариях!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍3🤝3
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18🤝2