C#


Начало работы

Hello.cs

``cs class Hello { // главный метод static void Main(string[] args) { // Вывод: Hello, world! Console.WriteLine(“Hello, world!”); } }


Создает каталог проекта для нового консольного приложения
``cs
$ dotnet new console

перечисляет все шаблоны приложений ``cs $ dotnet new list


Компиляция и запуск (убедитесь, что вы находитесь в каталоге проекта)
``Основной сценарий
$ dotnet run
Привет, мир!

Переменные

``cs int intNum = 9; long longNum = 9999999; float floatNum = 9.99F; double doubleNum = 99.999; decimal decimalNum = 99.9999M; char letter = ‘D’; bool @bool = true; string site = “cheatsheets.zip”;

var num = 999; var str = “999”; var bo = false;



### Примитивные типы данных
| Тип данных | Размер | Диапазон |
| --------- | ---------------- | ----------------------- |
| `int` | 4 байта | -2^31^ ^to^ 2^31^-1 |
| `long` | 8 байт | -2^63^ ^to^ 2^63^-1 |
| `float` | 4 байта | 6 ^до^ 7 десятичных цифр |
| `double` | 8 байт | 15 десятичных цифр |
| `decimal` | 16 байт | 28 ^to^ 29 десятичных цифр |
| `char` | 2 байта | 0 ^до^ 65535 |
| `bool` | 1 бит | true / false |
| `string` | 2 байта на символ | _N/A_ |
{.show-header}



### Комментарии
``cs
// Однострочный комментарий

/* Многострочный
   комментарий */

// TODO: Добавляет комментарий к списку задач в Visual Studio

/// Однострочный комментарий используется для документации

/** Многострочный комментарий
    используется для документации **/

Строки

``cs string first = “John”; string last = “Doe”;

// конкатенация строк string name = first + " " + last; Console.WriteLine(name); // => Джон Доу

См: [Строки](#c-strings)

### Пользовательский ввод
``cs
Console.WriteLine("Введите число:");
if(int.TryParse(Console.ReadLine(),out int input))
{
  // Ввод подтвержден
  Console.WriteLine($"Вы ввели {ввод}");
}

Conditionals

``cs int j = 10;

if (j == 10) { Console.WriteLine(“Меня печатают”); } else if (j > 10) { Console.WriteLine(“Меня не печатают”); } else { Console.WriteLine(“Я тоже не печатаюсь”); }



### Массивы
``cs
char[] chars = new char[10];
chars[0] = 'a';
chars[1] = 'b';

string[] letters = {"A", "B", "C"};
int[] mylist = {100, 200};
bool[] answers = {true, false};

Циклы

``cs int[] numbers = {1, 2, 3, 4, 5};

for(int i = 0; i < numbers.Length; i++) { Console.WriteLine(numbers[i]); }

---
``cs
foreach(int num in numbers) {
  Console.WriteLine(num);
}

Строки C#

Конкатенация строк

``cs string first = “John”; string last = “Doe”;

string name = first + " " + last; Console.WriteLine(name); // => John Doe


### Интерполяция строк
``cs
string first = "John";
string last = "Doe";

string name = $"{first} {last}";
Console.WriteLine(name); // => John Doe

String Members

Member Description
Length Длина
Compare()
Contains() Определяет, содержит ли строка определенную подстроку.
Equals()
Format()
Trim()
Split()
{.show-header}

Вербальные строки

``cs {.wrap} string longString = @“Я могу вводить здесь любые символы !#@$%^&*()__+ ‘’\n \t кроме двойных кавычек, и меня будут воспринимать буквально. Я даже работаю с несколькими строками.”



### Пример члена
```cs
// Использование свойства System.String
string lengthOfString = "Сколько времени?";
lengthOfString.Length // => 9

// Использование методов System.String
lengthOfString.Contains("How"); // => true

Разное

Общие термины .NET

Термин Определение
Время выполнения Совокупность служб, необходимых для выполнения данной скомпилированной единицы кода.
Common Language Runtime (CLR) В первую очередь это поиск, загрузка и управление объектами .NET. CLR также управляет памятью, хостингом приложений, координацией потоков, выполнением проверок безопасности и другими низкоуровневыми деталями.
Управляемый код Код, который компилируется и выполняется в среде выполнения .NET. Примерами являются C#/F#/VB.
Неуправляемый код
{.show-header}