Начало работы. Visual Studio
Итак, создадим первое приложение на языке C#. Что для этого потребуется? Во-первых, нам нужен текстовый редактор, в котором мы могли бы напечатать код программы. Во-вторых, нам нужен компилятор, который бы скомпилировал набранный в текстовом редакторе код в приложение exe. В-третьих, нам нужен фреймворк .NET, который требуется для компиляции и выполнения программы.
Чтобы облегчить написание, а также тестирование и отладку программного кода обычно используют специальные среды разработки, в частности, Visual Studio.
Для создания приложений на C# будем использовать бесплатную и полнофункциональную среду разработки - Visual Studio Community 2015, которую можно загрузить по следующему адресу:Microsoft Visual Studio 2015. Также можно использовать Visual Studio 2013.
При инсталляции Visual Studio на ваш компьютер будут установлены все необходимые инструменты для разработки программ, в том числе фреймворк .NET 4.6.
После завершения установки создадим первую программу. Она будет простенькой. Вначале откроем Visual Studio и вверху в строке меню выберем пунктFile (Файл) -> New (Создать) -> Project (Проект). Перед нами откроется диалоговое окно создания нового проекта:
Здесь в центре мы выберем пунктConsole Application, так как наше первое приложение будет консольным. Внизу в поле Name дадим проекту какое-либо название. В моем случае этоFirstApp. И нажмем ОК.
После этого Visual Studio создаст и откроет нам проект:
В большом поле в центре, которое по сути представляет текстовый редактор, находится сгенерированный по умолчанию код C#. Впоследствии мы изменим его на свой.
Справа находится окно Solution Explorer, в котором можно увидеть структуру нашего проекта. В данном случае у нас сгенерированная по умолчанию структура: узел Properties или Свойств (он хранит файлы свойств приложения и пока нам не нужен); узел References - это узел содержит сборки dll, которые добавлены в проект по умолчанию. Эти сборки как раз содержат классы библиотеки .NET, которые будет использовать C#. Однако не всегда все сборки нужны. Ненужные потом можно удалить, в то же время если понадобится добавить какую-нибудь нужную библиотеку, то именно в этот узел она будет добавляться.
Далее идет файл конфигурацииApp.config(пока он нас не интересует) и непосредственно сам файл кода программыProgram.cs. Как раз этот файл и открыт в центральном окне. Вначале разберем, что весь этот код представляет:
/*начало секции подключаемых пространств имен*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/*конец секции подключаемых пространств имен*/
namespace FirstApp /*объявление нового пространства имен*/
{
class Program /*объявление нового класса*/
{
static void Main(string[] args) /*объявление нового метода*/
{
}/* конец объявления нового метода*/
} /* конец объявления нового класса*/
} /* конец объявления нового пространства имен*/
В начале файла идут директивыusingпосле которых идут названия подключаемых пространств имен.Пространства именпредставляют собой организацию классов в общие блоки. Например, на первой строкеusing System;
подключается пространство имен System, которое содержит фундаментальные и базовые классы платформы .NET. Физически пространства имен находятся в подключаемых библиотеках dll, которые можно увидеть в окне Solution Explorer, открыв узел References:
Так, вы можете увидеть там библиотеку System.dll
, которая содержит классы из пространства имен System
. Однако точного соответствия между пространствами имен и названиями файлов dll
нет.
Второй строкой опять же подключается вложенное пространство имен System.Collections.Generic: то есть у нас в пространстве имен System
определено пространство имен Collections
, а уже в нем пространство имен Generic
.
И так как C# имеет Си-подобный синтаксис, каждая строка завершается точкой с запятой, а каждый блок кода помещается в фигурные скобки.
Далее начинается уже собственно наше пространство имен, которое будет создавать отдельную сборку или исполняемую программу: сначала идет ключевое словоnamespace
, после которого название пространства имен. По умолчанию Visual Studio дает ему название проекта. Далее внутри фигурных скобок идет блок пространства имен.
Пространство имен может включать другие пространства или классы. В данном случае у нас по умолчанию сгенерирован один класс - Program
. Классы объявляются похожим способом - сначала идет ключевое словоclass
, а потом название класса, и далее блок самого класса в фигурных скобках.
Класс может содержать различные переменные, методы, свойства, прочие инструкции. В данном случае у нас объявлен один метод Main
. Сейчас он пуст и ничего не делает. В программе на C# метод Main
является входной точкой программы, с него начинается все управление. Он обязательно должен присутствовать в программе.
Словоstatic
указывает, что метод Main
- статический, а словоvoid
- что он не возвращает никакого значения. Позже мы подробнее разберем, что все это значит.
Далее в скобках у нас идут параметры метода -string[] args
- это массив args, который хранит значения типаstring
, то есть строки. В данном случае ни нам пока не нужны, но в реальной программе это те параметры, которые передаются при запуске программы из консоли.
Теперь изменим весь этот код на следующий:
using System;
namespace FirstApp
{
class Program
{
static void Main(string[] args)
{
Calculator calc = new Calculator();
calc.Add(2, 3);
}
}
// объявление нового класса
class Calculator
{
public void Add(int x, int y)
{
int z = x + y;
Console.WriteLine("Сумма {0} и {1} равна {2}", x, y, z);
Console.ReadLine();
}
}
}
По сравнению с автоматически сгенерированным кодом я внес несколько изменений. Во-первых, я убрал подключение ненужных пространств имен, так как они в данном случае не нужны.
Во-вторых, я добавил в наше пространство имен новый класс - Calculator
, который имеет один метод Add
. Этот метод принимает в качестве параметров два числа - x и y и складывает их. А сумму выводим на консоль с помощью методаConsole.WriteLine
. МетодConsole.ReadLine
используется для ожидания ввода от пользователя, чтобы командная строка не схлопывалась сразу же после вывода результата.
В этих двух строках кода я обращаюсь к классу Console
, который находится в пространстве имен System
. Это пространство подключено в начале с помощью директивы using
. Однако нам необязательно подключать пространство имен. Мы можем даже удалить первую строку, но в этом случае мы тогда должны будем указать полный путь до используемого класса. Например, в нашем случае мы могли бы написать:System.Console.ReadLine()
.
После объявления нового класса мы можем использовать его в методе Main
:
Calculator calc = new Calculator(); // создание объекта нового класса
calc.Add(2, 3); // вызов метода Add нового класса
Позже мы разберем создание объектов, почему именно такой синтаксис используется, а сейчас же достаточно понимать, что все действия, которые мы хотим сделать, мы делаем в методе Main
, так как это входная точка в программу. Если бы мы не обратились к методу Add
, то он бы никогда бы не сработал.
Теперь мы можем запустить на выполнение с помощью клавиши F5 или с панели инструментов, нажав на зеленую стрелку. И если вы все сделали правильно, то вам отобразится консоль где будет красоваться число 5 - то есть сумма чисел 2 и 3.
Итак, мы создали первое приложение. Вы его можете найти на жестком диске в папке проекта в каталоге bin/Debug
(оно будет называться по имени проекта и иметь расширение exe
) и затем уже запускать без Visual Studio, а также переносить его на другие компьютеры, где есть .NET.
Теперь же рассмотрим основные составляющие синтаксиса языка