Метод Main
Точка входа в программу
Каждая программа на C# обязательно содержит класс с методом под именем Main. В примерах выше этот метод определён внутри класса Program.
Однако в новых версиях C# не нужно явно прописывать метод Main: код, написанный напрямую в корне файла, по умолчанию является телом Main.
- Выполнение программы на C# начинается с первой строки кода внутри метода
Main. - Первая буква имени метода
Main— M, обязательно прописная.
Самая короткая запись метода Main:
static void Main( )
{
Кодовые инструкции
}Code language: JavaScript (javascript)
Нельзя оставить программу без метода Main или создать несколько таких методов — должен быть ровно один.
Для демонстрации создадим проект .NET Framework в Visual Studio 2022, он работает только под Windows.

Выберите шаблон консольного приложения, показанный ниже.

В пункте выбора версии фреймворка выберите актуальную .NET 4.8.1.
Стандартное содержимое файла Program.cs после создания проекта выглядит так:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HelloDemo
{
internal class Program
{
static void Main(string[] args)
{
}
}
}
Code language: PHP (php)
Строки вверху подключают разные пространства имён, благодаря чему мы можем использовать встроенные классы .NET из этих пространств.
Добавьте одну строку кода внутрь метода Main:
Console.WriteLine(«hello foxdevelop.com»);

Нажмите зелёную треугольную кнопку «Start» в верхней части Visual Studio для запуска программы.

При запуске программа по умолчанию исполнит первую строку внутри Main.
Если скопировать метод Main и добавить второй экземпляр, сразу появится ошибка компиляции.

Причина ошибки: в одном пространстве имён не может существовать несколько функций с одинаковым именем. Попробуем создать два разных пространства имён.

Красные волнистые подчёркивания исчезнут, код выглядит нормально, но попробуем скомпилировать проект.
Нажмите Start

Появится ошибка сборки, её текст отобразится в окне Error List внизу редактора.

Если окно Error List скрыто, откройте его через верхнюю панель меню.

В списке ошибок будет указано точное место с неисправностью.

Пробельные символы (Whitespace)
Пробельные символы — это знаки, не создающие видимого вывода на экран. Компилятор игнорирует все пробелы в исходном коде; разработчики используют их для упорядочивания структуры и улучшения читаемости.
Основные виды пробельных символов:
- Пробел (Space)
- Табуляция (Tab)
- Перевод строки (New line)
- Возврат каретки (Carriage return)
Пример: два нижеприведённых фрагмента кода визуально сильно отличаются, но компилятор обрабатывает их полностью одинаково.
// Читаемый отформатированный вариант
Main()
{
Console.WriteLine("Hi, there!");
}
// Сжатый вариант без отступов
Main(){Console.WriteLine("Hi, there!");}Code language: JavaScript (javascript)
Ниже стандартный правильно отформатированный метод Main:
static void Main(string[] args)
{
Console.WriteLine("hello foxdevelop.com");
}Code language: JavaScript (javascript)
Если убрать все пробелы и записать код в одну строку, программа всё равно нормально скомпилируется — для компилятора разницы нет.
static void Main(string[] args){Console.WriteLine("hello foxdevelop.com");}Code language: JavaScript (javascript)

Инструкции (Statements)
Синтаксис инструкций C# похож на C и C++. В этом разделе рассмотрим общие правила, отдельные типы инструкций разберём позже.
Инструкция — одна строка исходного кода, которая описывает тип данных или даёт программе команду выполнить действие.
Простые инструкции обязательно заканчиваются точкой с запятой ;. Пример двух последовательных инструкций: первая объявляет целочисленную переменную var1 со значением 5, вторая выводит значение переменной в консоль.
int var1 = 5;
System.Console.WriteLine("The value of var1 is {0},welcome to foxdevelop.com", var1);Code language: JavaScript (javascript)

В примере выше внутри Main две инструкции, в предыдущих образцах была только одна. Первая строка создаёт целочисленную переменную var1 с числом 5, вторая выводит текст в консоль. Фрагмент {0} — заполнитель, он заменится значением из var1.
Блоки кода (Blocks)
Блок кода состоит из пары фигурных скобок, обрамляющих ноль или несколько инструкций; синтаксически весь блок воспринимается как одна единственная инструкция.
Обернём две инструкции из предыдущего примера фигурными скобками — получится полноценный блок кода:
{
int var1 = 5;
System.Console.WriteLine("The value of var1 is {0},welcome to foxdevelop.com", var1);
}Code language: JavaScript (javascript)

Основные правила блоков кода:
- Если синтаксис разрешает только одну инструкцию, но нужно выполнить несколько операций — оберните весь код в блок.
- Некоторые языковые конструкции требуют обязательного использования блоков, заменить их одиночной инструкцией нельзя.
- Простые инструкции заканчиваются точкой с запятой, но после закрывающей фигурной скобки блока точку с запятой не ставят. Компилятор примет символ
;после}, но интерпретирует как пустую инструкцию, это плохой стиль написания.
Иллюстрация правил:
{
int var2 = 5; // Каждая отдельная инструкция заканчивается ;
System.Console.WriteLine("The value of var1 is {0}", var1); // Каждая отдельная инструкция заканчивается ;
} // После закрывающей скобки точка с запятой не нужнаCode language: JavaScript (javascript)

Все обычные отдельные инструкции требуют в конце символ ;

Полный готовый пример, можно скопировать и запустить:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HelloDemo
{
internal class Program
{
static void Main(string[] args)
{
{
int var1 = 5;
System.Console.WriteLine("The value of var1 is {0},welcome to foxdevelop.com", var1);
}; ; ; ;
}
}
}
Code language: PHP (php)