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