From b206984ac9b8fbfc2e703e3717a398486c57e229 Mon Sep 17 00:00:00 2001 From: StNicolay Date: Sun, 19 Nov 2023 08:55:02 +0000 Subject: [PATCH] C# 19.11.2023 --- C#/C#.md | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/C#/C#.md b/C#/C#.md index 3d288db..f015ad8 100644 --- a/C#/C#.md +++ b/C#/C#.md @@ -862,3 +862,80 @@ void Swap(ref T x, ref T y) { ## Оценка сложности > В программировании, вычислительную скорость алгоритмов обычно оценивают по количеству действий, который выполняет алгоритм, и по количеству используемой памяти + +Виды: + +* O(1) - constant time +* O(n) - линейная +* O(log n) - логарифмическая +* O(n**2) - квадратичная + +## Обработка ошибок + +```C# +try { + // Тут злой код (он кидается) +} catch { + // Тут мы обрабатываем летящие в нас камни +} finally { + // This is fine... Anyway +} +``` + +Иногда может использоваться bool + +```C# +int Square(string data) +{ + if (int.TryParse(data, out var x)) + { + return x * x; + } + else + { + return default(int); + } +} +``` + +Можно обрабатывать конкретные ошибки + +```C# +int x = 1; +int y = 0; + +try +{ + int result = x / y; +} +catch (DivideByZeroException) when (y == 0 && x == 0) +{ + Console.WriteLine("Оба ноль"); +} +catch (DivideByZeroException ex) +{ + Console.WriteLine(ex.Message); +} +``` + +### Класс Exception + +> Класс *Exception* - базовый класс всех ошибок + +Поля: + +* InnerException +* Message +* Source - имя объекта/сборки, которое вызвало исключение +* StackTrace +* TargetSote - метод, в котором случилось исключение + +### Throw + +```C# +try { + throw new Exception("СТРАШНА ВЫРУБАЙ"); +} catch { + Console.WriteLine("This is fine"); +} +```