Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подсказка
Вы новичок в разработке программного обеспечения? Сначала начните с учебников для начинающих. Вам помогут шаг за шагом написать вашу первую программу на C#, перед тем, как изучить структуру программы.
Есть опыт на другом языке? Вам может потребоваться пропустить раздел "Начало работы " для синтаксиса C#, а затем вернуться сюда.
Вы создаете программы C# из этих основных стандартных блоков: пространства имен упорядочивают типы, типы (классы, структуры, интерфейсы, перечисления и делегаты) определяют поведение и данные, а также операторы и выражения выполняют работу во время выполнения. Структура точки входа зависит от выбранного стиля приложения.
Выбор стиля приложения
При создании программы C# сделайте два независимых выбора о том, как его структурировать:
-
На основе файлов или на основе проектов?
- Приложение на основе файлов запускается из одного
.csфайла без файла проекта. - Приложение на основе проекта использует
.csprojфайл и может охватывать несколько исходных файлов.
- Приложение на основе файлов запускается из одного
-
Операторы верхнего уровня или
Mainметод?- Инструкции верхнего уровня позволяют писать исполняемый код непосредственно в верхней части файла.
- Метод
Mainупаковывает точку входа в явный статический метод.
Оба приложения — основанные на проектах и на файлах — поддерживают любой стиль точки входа.
Приложения на основе файлов и приложения на основе проектов
Начиная с C# 14 и .NET 10, приложения на основе файлов позволяют запускать программу, содержащуюся в одном *.cs файле без файла проекта. Сохраните следующий код в файле с именем hello-world.cs и выполните его с помощью dotnet run hello-world.cs или dotnet hello-world.cs.
#!/usr/bin/env dotnet
Console.WriteLine("Hello, World!");
Замечание
Строка #! позволяет оболочкам Unix запускать файл напрямую. В любой системе Unix задайте разрешение на выполнение (+x) и запустите файл из командной строки.
Приложения на основе файлов поддерживают весь синтаксис C# и могут использовать директивы препроцессора для настройки системы сборки. Используйте приложения на основе файлов для небольших служебных программ командной строки, прототипов и экспериментов. Приложение на основе файлов состоит из одного файла в каталоге:
my-app/
└── hello-world.cs
Приложения на основе проектов используют .csproj и команды .NET CLI, dotnet newdotnet build и dotnet run рабочий процесс. Выберите приложения на основе проекта, когда программа охватывает несколько файлов или требует точной настройки сборки. Приложение на основе проекта включает файл проекта вместе с одним или несколькими исходными файлами:
my-app/
├── my-app.csproj
├── Program.cs
├── Models/
│ └── Person.cs
└── Services/
└── GreetingService.cs
Если приложение на основе файлов растет, его можно легко преобразовать в приложение на основе проекта. Запустите dotnet project convert , чтобы создать файл проекта из существующего исходного файла.
Если вы знаете, что ваше приложение нуждается в нескольких исходных файлах с самого начала, начните с приложения на основе проекта. Вы избегаете шага преобразования и можете упорядочить код в отдельные файлы сразу.
Операторы верхнего уровня и Main метод
С помощью инструкций верхнего уровня можно писать исполняемый код непосредственно в одном файле, не упаковывая его в класс и Main метод. Этот стиль используется по умолчанию при создании нового консольного приложения.dotnet new console В следующем примере показана современная программа C#, использующая инструкции верхнего уровня:
Console.WriteLine("Hello, World!");
namespace YourNamespace
{
class YourClass
{
}
struct YourStruct
{
}
interface IYourInterface
{
}
delegate int YourDelegate();
enum YourEnum
{
}
}
Только один файл в проекте может содержать инструкции верхнего уровня, а точка входа — первая строка текста программы в этом файле. При создании более крупных программ вы включаете дополнительные элементы программы.
Можно также определить явный статический Main метод в качестве точки входа программы:
// A skeleton of a C# program using an explicit Main method
namespace YourNamespace;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
Оба стиля точки входа работают с приложениями, основанными на файлах и проектах. Оба стиля поддерживают одни и те же функции.
Создание и запуск программ C#
C# — это скомпилированный язык. Для приложений на основе проекта используйте dotnet build команду для компиляции исходных файлов в двоичный пакет. Используйте dotnet run, чтобы выполнить сборку и запуск в один шаг. Интерфейс dotnet командной строки, включенный в пакет SDK для .NET, предоставляет множество средств для создания, сборки и управления проектами C#.
Для приложений dotnet run hello-world.cs на основе файлов компилирует и запускает один файл напрямую — файл проекта не требуется.
Выражения и инструкции
Если вы выполнили учебные пособия 'Начало работы', вы уже написали выражения и операторы. Каждая строка кода, введенная вами, была одной или другой (или то и другое). Теперь определим эти термины.
Выражения и операторы являются основными стандартными блоками программы C#. Выражение создает значение. Оператор выполняет действие и обычно заканчивается точкой запятой.
Ниже приведены выражения:
-
42(литеральное значение) -
x + y(арифметическая операция) -
Math.Max(a, b)(вызов метода, который создает значение) -
condition ? trueValue : falseValue(условное выражение) -
new Person("John")(создание объекта)
Инструкция выполняет действие. Операторы управляют потоком программы, объявляют переменные или вызывают операции. Ниже приведены утверждения:
-
int x;(инструкция объявления) -
int x = 42;(оператор объявления с инициализацией) -
Console.WriteLine("Hello");(оператор вызова метода) -
if (condition) { /* code */ }(условный оператор) -
return result;(оператор return)
Инструкции часто содержат выражения, а выражения могут вложиться в другие выражения. Например, следующий оператор объявления присваивает f результату выражения сложения. Это выражение добавления добавляет результаты двух выражений вызова метода:
var maxResult = Math.Max(a, b) + Math.Max(c, d);
Подробные сведения об инструкциях см. в разделе "Инструкции". Сведения о элементах с выражением см. в разделе "Элементы с выражением".
Связанный контент
- Классы
- структуры
- пространства имен
- Интерфейсы
- перечисления
- делегаты
- Основные понятия в спецификации языка C#