C# 30.09.2023
This commit is contained in:
parent
8007485316
commit
2a35336a4c
84
C#/C#.md
84
C#/C#.md
@ -350,3 +350,87 @@ int Sum1(int a, int b) {
|
|||||||
|
|
||||||
int Sum2(int a, int b) => a + b;
|
int Sum2(int a, int b) => a + b;
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Рекурсия
|
||||||
|
|
||||||
|
```C#
|
||||||
|
int Factorial(int n) {
|
||||||
|
if (n == 0) return 1;
|
||||||
|
|
||||||
|
return n * Factorial(n - 1);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Функции внути функций
|
||||||
|
|
||||||
|
```C#
|
||||||
|
int Sum2Arr(int[] arr1, int[] arr2) {
|
||||||
|
|
||||||
|
int Sum(int[] arr) {
|
||||||
|
int result = 0;
|
||||||
|
foreach (int i in arr) {
|
||||||
|
result += i;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Sum(arr1) + Sum(arr2);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Enum
|
||||||
|
|
||||||
|
Enum используется для хранения состояния
|
||||||
|
|
||||||
|
```C#
|
||||||
|
enum Operation {
|
||||||
|
Add,
|
||||||
|
Sub
|
||||||
|
}
|
||||||
|
|
||||||
|
Operation foo = Operation.Add;
|
||||||
|
```
|
||||||
|
|
||||||
|
### Тип констант перечисления
|
||||||
|
|
||||||
|
```C#
|
||||||
|
enum Time: byte {
|
||||||
|
Morning,
|
||||||
|
Afternoon,
|
||||||
|
Evening,
|
||||||
|
Night
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Тип обязательно должен быть целочисленным. По умолчанию int
|
||||||
|
|
||||||
|
### Задание значения для Enum
|
||||||
|
|
||||||
|
```C#
|
||||||
|
enum DayTime {
|
||||||
|
Morning = 3,
|
||||||
|
Afternoon // 4
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## OOP
|
||||||
|
|
||||||
|
OOP - зло, C# - OOP -> C# - зло
|
||||||
|
|
||||||
|
```C#
|
||||||
|
namespace Foo {
|
||||||
|
internal class Enemy {
|
||||||
|
public int hp;
|
||||||
|
public int armor;
|
||||||
|
public int damage;
|
||||||
|
|
||||||
|
public void Move() {
|
||||||
|
Console.WriteLine("I am moving");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Attack() {
|
||||||
|
Console.WriteLine("I am attacking");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
106
Java/Java.md
106
Java/Java.md
@ -74,3 +74,109 @@ Pattern - скомпилированный RegEx
|
|||||||
Pattern p = Pattern.compile("java");
|
Pattern p = Pattern.compile("java");
|
||||||
p = Pattern.compile("java", Pattern.CASE_INSENSETIVE);
|
p = Pattern.compile("java", Pattern.CASE_INSENSETIVE);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Var
|
||||||
|
|
||||||
|
Var выбирает тип по типу данных, который мы присваеваем. Нужно инициализировать при объявлении
|
||||||
|
|
||||||
|
```Java
|
||||||
|
var x = 5;
|
||||||
|
```
|
||||||
|
|
||||||
|
## Константы
|
||||||
|
|
||||||
|
В Java константы объявляются словом *final*
|
||||||
|
|
||||||
|
```Java
|
||||||
|
final int LIMIT = 5;
|
||||||
|
```
|
||||||
|
|
||||||
|
## Массивы
|
||||||
|
|
||||||
|
Объявлять массивы можно разными способами
|
||||||
|
|
||||||
|
```Java
|
||||||
|
int nums[] = new int[] {10, 20};
|
||||||
|
int[] nums = {10, 20, 30};
|
||||||
|
```
|
||||||
|
|
||||||
|
### Многомерный массив
|
||||||
|
|
||||||
|
```Java
|
||||||
|
int[][] nums = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
|
||||||
|
```
|
||||||
|
|
||||||
|
## Параметры переменной длины
|
||||||
|
|
||||||
|
```Java
|
||||||
|
static void sum(int ...nums) {
|
||||||
|
int result = 0;
|
||||||
|
for(int n: nums) {
|
||||||
|
result += n;
|
||||||
|
}
|
||||||
|
System.out.println(result);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Все обязательные параметры до параметрвов переменной длины
|
||||||
|
|
||||||
|
## Значения по умолчанию для параметров
|
||||||
|
|
||||||
|
**Их нету!!!**
|
||||||
|
|
||||||
|
## Перегрузка методов
|
||||||
|
|
||||||
|
Перегрузка позволяет определять функции с одинаковым именем, но с разными типами и/или кол-вом параметров.
|
||||||
|
|
||||||
|
```Java
|
||||||
|
static int sum(int a, int b) {
|
||||||
|
return a + b;
|
||||||
|
}
|
||||||
|
|
||||||
|
static double sum(double a, double b) {
|
||||||
|
return a + b;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Если отличается только выходной тип, то останется только последняя имплементация
|
||||||
|
|
||||||
|
```Java
|
||||||
|
// Эту версию не получится вызвать
|
||||||
|
static int sum(int a, int b) {
|
||||||
|
return a + b;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Будет вызываться эта версия
|
||||||
|
static double sum(int a, int b) {
|
||||||
|
return a + b;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Обработка ошибок
|
||||||
|
|
||||||
|
### try-catch-finally
|
||||||
|
|
||||||
|
```Java
|
||||||
|
try {
|
||||||
|
int[] a = new int[3];
|
||||||
|
a[4] = 5;
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
System.out.println("Will always print this");
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Throw
|
||||||
|
|
||||||
|
```Java
|
||||||
|
throw new Exception("Very important exception! Don't you dare not handle it");
|
||||||
|
```
|
||||||
|
|
||||||
|
### Throws
|
||||||
|
|
||||||
|
Позволяет кинуть ошибку вверх по стаку
|
||||||
|
|
||||||
|
```Java
|
||||||
|
public static void main(String[] args) throws Exception {}
|
||||||
|
```
|
||||||
|
37
Java/foo.java
Normal file
37
Java/foo.java
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
class Solution {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
int[] nums1 = {1,2,3,0,0,0};
|
||||||
|
int[] nums2 = {2,5,6};
|
||||||
|
merge(nums1, 3, nums2, 3);
|
||||||
|
for (Object object :nums1) {
|
||||||
|
System.out.println(object);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void merge(int[] nums1, int m, int[] nums2, int n) {
|
||||||
|
int j = 0;
|
||||||
|
for (int i = 0; i < nums1.length && j < n; i++) {
|
||||||
|
if (nums1[i] <= nums2[j]) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
insert(nums1, nums2[j], i);
|
||||||
|
j++;
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static void insert(int[] nums, int num, int pos) {
|
||||||
|
if (pos == nums.length - 1) {
|
||||||
|
nums[pos] = num;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = pos; i < nums.length; i++) {
|
||||||
|
int temp = nums[i];
|
||||||
|
nums[i] = num;
|
||||||
|
num = temp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user