Структура программы на C#

При знакомстве с Visual Studio мы также имели возможность познакомиться и с полной структурой программы на C#. Теперь, когда мы определились с инструментом для работы, можно полностью погрузиться в мир программирования на C# и в этой части мы рассмотрим структуру программы.

Структура программы на C#

Любая программа на C# состоит из одного или нескольких файлов. Например, даже для первой программы на C# создаются такие файлы как Program.cs и [Имя_проекта].csproj. В файлах с расширением *.cs содержится код программы.

Внутри файла Program.cs в зависимости от шаблона по которому создается приложение мы можем один из двух вариантов кода:

C# 9 и более поздние версииC# до версии 9
Console.WriteLine("Hello, World");
namespace HelloWorld 
{ 
        internal class Program 
        { 
             static void Main(string[] args) 
            { 
                 Console.WriteLine("Hello, World"); 
            } 
        } 
}

В первом случае (для C# 9 и более поздних версий) программа использует инструкции верхнего уровня (Top-Level Statement, также можно встретить название «Операторы верхнего уровня»). Возможность использования инструкций верхнего уровня появилась, начиная с версии C# 9 и позволяет нам избавиться от некоторых формальностей при написании приложений. В любом случае, наша программа будет работать абсолютно одинаково, что в первом, что во втором случае — в консоль будет выведено сообщение «Hello, World!».  При этом, в случае использования инструкций верхнего уровня мы сразу видим перед собой главный строительный блок любого приложения — инструкцию

Console.WriteLine("Hello, World");
Как отключить операторы верхнего уровня в Visual Studio

Использовать или не использовать операторы верхнего уровня — это вопрос только ваших личных предпочтений. Кто-то хочет видеть на экране весь код приложения и операторы верхнего уровня в этом случае не нужны, а кому-то проще и удобнее сразу видеть суть приложения без лишних формальностей. Чтобы определить будут ли использоваться в вашем приложении операторы верхнего уровня, необходимо при создании нового проекта использовать следующую настройку:

Настройка использования операторов верхнего уровня
Настройка использования операторов верхнего уровня

Если указанная на рисунке настройка выбрана, то в результате сформируется шаблон приложения со всеми операторами и инструкциями (как в C# до версии 9), если же настройка отключена, то сформируется шаблон, использующий операторы верхнего уровня.

Инструкции

Инструкции — это какое-то действие, которое мы просим программу выполнить. Это может быть вывод текста на экран, математическая операция, присвоение значения переменной и так далее. Любая инструкция в языке C# оканчивается символом «точка с запятой». Хорошим тоном в программировании считается, когда одна инструкция занимает одну строку или же, если инструкция большая (например, содержит цепочку вызовов каких-то методов) располагается на нескольких строках и умещается в ширину экрана.

Хороший пример кодаПлохой пример кода
Console.WriteLine("Введите своё имя: "); 
string name = Console.ReadLine(); 
Console.WriteLine($"Привет, {name}!");
Console.ReadKey();

Каждая инструкция занимает одну строку кода и умещается в ширину экрана.

Console.WriteLine("Введите своё имя: "); string name = Console.ReadLine(); Console.WriteLine($"Привет, {name}!"); Console.ReadKey();

Все инструкции размещены в одной строке, что значительно усложняет чтение кода

Несколько инструкций могут объединяться в блоки кода.

Блоки кода

Блоки кода в C# заключаются в фигурные скобки ({...}). Блоки кода могут использоваться для различных задач — для определения тела метода, блоки кода объединяют различные типы данных внутри пространства имен одни блоки кода могут содержать внутри себя другие блоки и т.д. Использование блоков кода прекрасно демонстрируется во втором случае создания программы в Visual Studio без использования операторов верхнего уровня:

Блоки кода
Блоки кода

Комментарии

Ещё один важный элемент любой программы — это комментарии. Комментарий — это обычный текст, который не используется компилятором при сборке, однако помогает программисту сделать код более понятным. Комментарии в C# бывают однострочными и многострочными. Однострочный комментарий начинается с символов //,  занимает одну строку и может размещаться на отдельной строке или после инструкции. Например, мы могли бы добавить в наше первое приложение такие комментарии:

Console.WriteLine("Введите своё имя: "); //вывод текста 
string name = Console.ReadLine();        //считываем имя пользователя в переменную name
Console.WriteLine($"Привет, {name}!");   //выводим на экран приветствие 
Console.ReadKey();                       //ждем, пока пользователь нажмет какую-нибудь клавишу

здесь все комментарии располагаются сразу после инструкций. Иногда бывает необходимым оставить в качестве комментария большой объем текста или «закомментировать» блок кода, чтобы он не выполнялся при работе приложения. Для таких целей используются многострочные комментарии, которые начинаются с символов /* и заканчиваются символами */. Например, дадим небольшое описание нашей программе в виде многострочного комментария:

/*
 Эта программа просит пользователя ввести своё имя и выводит приветствие на экран
 Код взят с сайта http://csharp.webdelphi.ru 
 По всем вопросам работы с программой обращаться по адресу... 
 */
namespace HelloWorld
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите своё имя: "); //вывод текста 
            string name = Console.ReadLine();        //считываем имя пользователя в переменную name
            Console.WriteLine($"Привет, {name}!");   //выводим на экран приветствие 
            Console.ReadKey();                       //ждем, пока пользователь нажмет какую-нибудь клавишу
        }
    }
}

С кодом приложения немного разобрались. Теперь переключим наше внимание на второй важный файл нашей программы — файл проекта с расширение *.cproj

Файл проекта .*cproj

Каждый проект C# содержит файл проекта. В этом файле содержится основная информация о конфигурации проекта. Посмотрим на содержимое этого файла. Для этого, в обозревателе решений Visual Studio необходимо кликнуть правой кнопкой мыши по названию проекта и в контекстном меню выбрать пункт «Изменить файл проекта»:

В редакторе кода мы увидим следующий текст:

<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>

</Project>

Это обычный файл в формате xml в котором может содержаться довольно много различной информации о проекте. Рассмотрим основные элементы этого файла проекта и что они означают:

OutputType определяет тип выходного файла приложения (сборки). Exe — создается файл с расширением *.exe, который мы можем запустить на выполнение двойным кликом мышки. Dll — на выходе получим библиотеку с расширением *.dll, которую можно будет подключать к другим проектам. По умолчанию мы создаем exe-файл
TargetFramework Целевая платформа под которую будет собираться проект. В данном случае наш проект «нацелен» на платформу .NET 9. Со всеми возможными вариантами этого параметра можно ознакомиться в справке Microsoft.
ImplicitUsings используется для включения или отключения неявных директив global using в проектах C#, предназначенных для .NET 6 или более поздней версии, и C# 10 или более поздней версии.
Nullable Для C# 8.0 и выше (не путать с .NET 8) позволяет включать или отключать так называемый nullable-контекст. О том, что это такое и зачем нужно мы также поговорим далее, когда разберемся с основными типами данных C#

Если Вы используете для работы Visual Studio, то эти и другие настройки проекта можно посмотреть в более удобном виде в свойствах проекта:

Итого

Итак, на примере простенькой программы мы рассмотрели структуру приложения в C# — изучили основные «строительные блоки» приложения такие как инструкции, блоки кода, комментарии. А также немного познакомились с файлом проекта и его некоторыми настройками. Теперь можно приступать созданию приложение чуть сложнее, чем обычный «Hello, world»

Подписаться
Уведомить о
guest
1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии