C# 19.11.2023

This commit is contained in:
StNicolay 2023-11-19 08:55:02 +00:00
parent 3c374abf6b
commit b206984ac9

View File

@ -862,3 +862,80 @@ void Swap<T>(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");
}
```