diff --git a/C#/C#.md b/C#/C#.md new file mode 100644 index 0000000..a3c78ec --- /dev/null +++ b/C#/C#.md @@ -0,0 +1,110 @@ +# C\# + +## Project file + +Project file - файл для конфигурации проекта в формате xml + +Поля: + +* OutputType (Exe | Dll) - во что компилировать +* TargetFramework (net7.0) - версия .NET + +## Переменные + +```C# +string name = "Tom"; +string name2; +name2 = "Bob"; +``` + +## Константы + +```C# +const string NAME = "Tom"; +``` + +## Типы данных + +* bool +* sbyte (signed byte) +* byte +* short - 16 байт +* ushort (unsigned) +* int - 32 байта +* uint +* long - 64 байта +* ulong +* char - 16 байт. Знак unicode +* float 32 байт +* double - 64 байта +* decimal - 128 бит +* string +* object - аля Python Object + +Числа в формате 3.14 по умолчанию double. Если нужен float или decimal, то используются суффиксы + +```C# +float a = 3.14f; +decimal b = 3.14m; +``` + +Для целочисленных по умолчанию int + +```C# +int a = 5; +uint b = 5u; +long c = 5l; +ulong d = 5ul; +``` + +## Неявная типизация + +```C# +var hello = "Hello world"; +``` + +Для var объявление и инициализация должны идти вместе + +```C# +// Так низя: ошибка +var c; +c = 5; +``` + +## Вывод в терминал + +```C# +Console.WriteLine("Привет"); +Console.Write("Привет "); +Console.Write("Мир"); +``` + +Выведет: + +```text +Привет +Привет мир +``` + +## Форматированный вывод + +```C# +string name = "John"; +string age = 34; +Console.WriteLine($"{name} is {age} years old") +``` + +## Ввод данных + +```C# +string? name = Console.ReadLine(); +int foo = Convert.ToInt32(Console.ReadLine()); +``` + +## Простые операторы + +* \+ +* \- +* \* +* / +* %