Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Подсказка
Вы новичок в разработке программного обеспечения? Сначала начните с учебников для начинающих. Вам помогут шаг за шагом написать вашу первую программу на 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#