C# 19.11.2023
This commit is contained in:
parent
3c374abf6b
commit
b206984ac9
77
C#/C#.md
77
C#/C#.md
@ -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");
|
||||
}
|
||||
```
|
||||
|
Reference in New Issue
Block a user