Выберите в Visual Studio шаблон Blank Solution (Пустое решение) в диалоговом окне Create a new project (Создание нового проекта). После открытия решения щелкните правой кнопкой мыши на имени решения в окне Solution Explorer (Проводник решений) и выберите в контекстном меню пункт Add►New Project (Добавить►Новый проект). Выберите шаблон ConsoleАрр (.NET Core) (Консольное приложение (.NET Core)) на языке С#, назначьте ему имя SimpleCSharpApp и щелкните на кнопке Create (Создать). Не забудьте выбрать в раскрывающемся списке Target framework (Целевая инфраструктура) вариант .NET 5.0.
Введите в окне командной строки следующие команды:
dotnet new sin -n Chapter3_AllProjects
dotnet new console -lang c# -n SimpleCSharpApp
-o .\SimpleCSharpApp -f net5.0
dotnet sin .\Chapter3_AllProjects.sin add .\SimpleCSharpApp
Наверняка вы согласитесь с тем, что код в первоначальном файле Program.cs не особо примечателен:
using System;
namespace SimpleCSharpApp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
Теперь модифицируем метод Main() класса Program следующим образом:
class Program
{
static void Main(string[] args)
{
// Вывести пользователю простое сообщение.
Console.WriteLine("***** My First C# App *****);
Console.WriteLine("Hello World!");
Console.WriteLine();
// Ожидать нажатия клавиши
Console.ReadLine();
}
}
На заметку! Язык программирования C# чувствителен к регистру. Следовательно, Main — не то же, что main, a Readline — не то же, что ReadLine. Запомните, что все ключевые слова C# вводятся в нижнем регистре (например, public, lock, class, dynamic), в то время как названия пространств имен, типов и членов (по соглашению) начинаются с заглавной буквы и имеют заглавные буквы в любых содержащихся внутри словах (скажем, Console.WriteLine, System.Windows.MessageBox, System.Data.SqlClient). Как правило, каждый раз, когда вы получаете от компилятора сообщение об ошибке, касающееся неопределенных символов, то в первую очередь должны проверить правильность написания и регистр.
Предыдущий код содержит определение типа класса, который поддерживает единственный метод по имени Main(). По умолчанию среда Visual Studio назначает классу, определяющему метод Main(), имя Program; однако при желании его можно изменить. До выхода версии C# 9.0 каждое исполняемое приложение C# (консольная программа, настольная программа Windows или Windows-служба) должно было содержать класс, определяющий метод Main(), который использовался для обозначения точки входа в приложение.
Выражаясь формально, класс, в котором определен метод Main(), называется Main() должен применяться в качестве точки входа. Это можно делать через элемент в файле проекта или посредством раскрывающегося списка Startup Object (Объект запуска) на вкладке Application (Приложение) окна свойств проекта в Visual Studio.
Обратите внимание, что сигнатура метода Main() снабжена ключевым словом static, которое подробно объясняется в главе 5. Пока достаточно знать, что статические члены имеют область видимости уровня класса (а не уровня объекта) и потому могут вызываться без предварительного создания нового экземпляра класса.
Помимо наличия ключевого слова static метод Main() принимает единственный параметр, который представляет собой массив строк (string[] args). Несмотря на то что в текущий момент данный массив никак не обрабатывается, параметр args может содержать любое количество входных аргументов командной строки (доступ к ним будет вскоре описан). Наконец, метод Main() в примере был определен с возвращаемым значением void, т.е. перед выходом из области видимости метода мы не устанавливаем явным образом возвращаемое значение с использованием ключевого слова return.