C# является одним из наиболее распространённых языков программирования, который позволяет разрабатывать различные виды приложений на платформах .NET Framework и Windows, а также веб-службы XML, баз данных, клиент-серверного ПО и др. Наиболее часто в качестве редактора и компилятора кодов используется среда Visual C#, отличающаяся удобными конструкторами, понятным пользовательским интерфейсом, интегрированным отладчиком и многими другими инструментами, упрощающими создание прикладных программ. Здесь мы рассмотрим самые базовые понятия комментарии C# и переменные.
Особенности языка C#
C# отличается очень богатым синтаксисом, который в то же время является простым и удобным. Особенно легко даётся изучение программистам, которые уже владеют знаниями и навыками работы с языками С, С++ и Java. C# сочетает в себе все преимущества этих языков, при этом не имеет их недостатков. Одним из основных достоинств «шарпа» является наличие мощных функций, и предоставление прямого доступа к операционной памяти.
«Шарп» пользуется универсальными методами, интеграторами и типами данных, обеспечивающими наивысшую безопасность и производительность разработки программ. Характерной чертой языка является наличие выражений LINQ, с помощью которых можно создавать очень удобные кодовые конструкции со строго типизированными запросами.
C# относится к объектно-ориентированным языкам, который имеет строгую типизацию. Каждая переменная и метод (в том числе входная точка Main), инкапсулируется при определении классов, при этом из родительского класса можно реализовывать неограниченное количество интерфейсов.
Также C# предоставляет инновационные языковые конструкции, упрощающие разработку приложений:
- сигнатура метода (называемая делегатом), позволяющая реализовывать безопасное оповещение о происходящем событии;
- свойство, определяющее функции акцессора для закрытой переменной;
- атрибут, предоставляющий данные о типе функции/переменной/объекта при написании кода;
- внутристрочное комментирование (для XML-документов);
- LINQ – языковой запрос в отношении различных источников данных.
Чтобы взаимодействовать с другими программными обеспечениями типа Windows (объекты COM, собственные библиотеки DLL), язык C# имеет процесс «Взаимодействия». Они позволяют приложениям, написанным на «шарпе», выполнять практически все действия и функции, которые прописаны машинным кодом C++. Также языком C# поддерживается набор указателей и «небезопасных» блоков кода в тех случаях, когда критически важно наличие прямого доступа к операционной памяти.
Основы синтаксиса языка C#
Я планирую написать серию статей посвященным основам разработки на языке C#. Здесь будут рассмотрены только две первых темы, это комментарии и переменные. Также мы создадим наше первое приложение Hello World. Продолжение обучение будет доступно по мере написания статей по ссылкам в конце статьи. Итак, приступим.
Комментарии C#
Комментарии в коде — это текстовые пометки в исходном коде приложения, которые не влияют на сам исходный код, а служат только для повышения удобочитаемости и понятности кода. В них чаще всего содержатся пояснения к сложным участкам кода.
Не смотря на то, что комментарии C# не несут никакой полезной нагрузки для самого приложения, они просто невероятно полезны для долгосрочного поддержания проекта, потому что бывает очень сложно разобраться в чужом коде. А если принять за правило утверждение, что любой написанный самим тобой код, про прошествии полугода становиться «чужим», то я настаиваю, что писать комментарии полезно и нужно. Да, есть противоположное мнение, что код должен быть самодокументированным (то есть понятным для чтения без комментариев), но я придерживаюсь мнения, что даже к такому коду лучше оставлять комментарии C#.
Итак, в языке C# используются два вида комментариев:
- Однострочные (//)- распространяются до перехода на новую строку
- Многострочные (/**/)- распространяются на все строки в промежутке между ключевыми символами.
// Это однострочный комментарий с начала строки. int i = 5; // Это однострочный комментарий после команды. /* Это многострочный комментарий в одной строке. Но зачем?.. */ /* Это тоже многострочный комментарий */
Комментарии C# в первую очередь нужны, чтобы оставлять заметки которые могут пригодиться в будущем вам или другому программисту, который будет поддерживать ваш код. Кроме того, комментарии часто используются на этапе отладки приложения, чтобы временно пропускать некоторые команды. По оформлению комментариев существует рекомендация добавлять пробел после //, начинать писать новое предложение комментария с большой буквы, а длинное перенесенное с новой строки с маленькой, в конце комментария ставить точку.
//некрасивый коммент без пробела и точки // Хорошо оформленный длинный комментарий, // который может быть на несколько строк.
Также обязательно используйте комментарии XML-документации ко всем открытым методам, свойствам и конструкторам класса, а желательно вообще ко всем. Это позволяет отображать подсказки использовании. Для добавления этого комментария в Visual Stuio достаточно поставить три символа слеша (///) перед именем метода, свойства и конструктора, и шаблон комментария будет сгенерирован автоматически. Подробнее про формат этих комментариев можно прочитать в документации Micosoft.
/// <summary> /// Открыть окно. /// </summary> public static void Open() { }

Переменные C#
Переменная является одним из базовых понятий в программировании, которое пришло в него из математики. Переменная — это контейнер для хранения информации, имеющий собственное имя. Если рассматривать глубже с технической точки зрения, переменная — это определенная область памяти в системе, к которой можно обращаться для чтения и записи по уникальному в пределах области видимости имени. Если рассматривать с обывательской точки зрения, то переменную можно представить как коробку, на которой наклеен стикер с номером. В коробку мы можем положить что угодно (что может туда поместиться), посмотреть, что там лежит, или вытащить и положить что-либо другое. И мы всегда можем найти конкретную коробку по ее номеру. Так и переменные позволяют сохранять, читать, изменять и удалять нужные нам данные по удобному и понятному имени.
Язык C# является строготипизированным, это означает, что если мы объявили переменную для целых чисел, мы не сможем в ней хранить текстовые данные. Давайте рассмотрим основные наиболее часто используемые типы данных в языке C#
- string — текстовая строка
- int — целое число (от -2 147 483 648 до 2 147 483 647)
- double — дробное число с плавающей запятой
- bool — логическое значение (истина/ложь)
- char — буквенный символ
- decimal — дробное число с фиксированной запятой
- byte — маленькое целое число (от 0 до 255)
- long — большое целое число (от 9 223 372 036 854 775 808 до 9 223 372 036 854 775 807)
- object — базовый тип всего языка
Стоить заметить, что это далеко не полный список всех типов данных. Здесь перечислены только самые часто используемые. Существуют также модифицированные типы данных, такие как uint, которые позволяют задать значения больше нуля, но большего диапазона (в данном случае будет от 0 до 65535). Или наоборот sbyte (от -128 до 127). Но давайте рассмотрим примеры.
int i = 5; double d = 5.2; string s = "Hello, World!"; char c = 'a'; bool b = true; decimal dec = -4.22M;
Перечислим особенности переменных некоторых типов данных: для отделения дробной части от целой используется символ точки, а не запятой. Строки задаются только в двойных кавычках, а символы только в одинарных. Для типа данных decimal при не пустой дробной части обязательно использование постфикса M. Логический тип принимает одно из двух логических значений true — истина, false — ложь. Отрицательные числа задаться с помощью символа минус перед числом.
Нотации в языке C#
Одну из основных рекомендаций которую я могу дать, это всегда используйте понятные и лаконичные называния для переменных. Имя переменной всегда должно подробно и однозначно описывать собственное содержимое. Лучше всего вообще отказаться от использования односимвольных переменных в коде, иначе отладка ад. В Microsoft docs есть подробная статья о рекомендациях по именованию в языке, но если говорить очень коротко, то можно выделить три популярных стиля именования (нотация):
- Pascal casing — Все первые буквы в имени переменной пишутся с заглавными. Слова соединяются без разделителя.
- Camel casing — Первые слова в имени переменной пишутся с большой буквы, за исключением первого, который тоже пишется с маленькой. Слова соединяются без разделителя.
- Snake casing — Все буквы пишутся строчными. Слова соединяются через символ подчеркивания (_)
int CountCatInHouce = 5; // Pascal casing. int countCatInHouce = 5; // Camel casing. int count_cat_in_houce = 5; // Snake casing.
В соответствии для этого можно сделать следующие рекомендации:
Pascal для имен классов, свойств, конструкторов, методов, делегатов, событий.
Camel для локальных переменных, аргументов методов.
Snake вообще лучше не использовать. Или только для констант.
Первое приложение на языке C#
Для разработки на языке C# чаще всего используется среда программирования Microsoft Visual Studio. У нее достаточно много версий и редакций, некоторые из них платные, некоторые бесплатные. Я рекомендую на начальном этапе использовать среду самую свежую на текущий момент бесплатную версию Visual Studio Community 2017. Скачиваете, устанавливаете, запускаете и видите главное окно. Здесь вам нужно в меню Новый проект выбрать элемент Консольное приложение (.NET Framework).

Если его не будет в списке, то нажмите на ссылку Создать новый проект расположенную ниже. Проверьте в левом меню, что выбрано консольное приложение или при необходимости найдите и выберите его, после чего введите имя проекта и нажмите ОК.

В открывшимся окне редактора исходного кода вводим следующий код
using System; namespace HelloWorldApp { /// <summary> /// Основной класс приложения. /// </summary> class Program { /// <summary> /// Стартовый метод приложения. /// Работа приложения всегда начинается с этого метода. /// </summary> /// <param name="args"> /// Аргументы, передаваемые в качестве параметров /// при вызове приложения из консоли с аргументами. /// </param> static void Main(string[] args) { // Создаем строковую переменную с произвольным текстом. string text = "Hello, World"; // Вызываем метод вывода информации на консоль. Console.WriteLine(text); // Ожидаем нажатия клавиши Ввод пользователем. Console.ReadLine(); } } }

После чего нажимаем клавишу F5 или кнопку Пуск вверху приложения
После чего выполнится компиляция и запуск приложения. Мы увидим консольное приложение, которое просто выведет текст на экран. Если после этого нажать клавишу Enter, приложение завершит свою работу.

Это самый элементарный пример, который очень часто используется в программировании.
Работа с GitHub
Если нет желания вручную набирать исходный код, можно воспользоваться системой контроля версий, и скачать этот пример готовым из репозитория github. Для этого перейди по ссылке, и нажми на кнопку Clone or Download. В открывшимся окне выбери Open in Visual Studio (если установлено расширение GitHub для Visula Studio) или Download ZIP.

Если ты нажмешь на Open in Visual Studio, то появится еще одно окно подтверждения. Нажимай на кнопку Открыть.

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

После загрузки приложения в Обозревателе решений щелкни на файл решения (.sln), и получишь готовый к использованию проект.

Если Расширение Github для Visual Studio у тебя не было установлено, то после загрузки просто распакуй скаченный архив в любую удобную тебе папку на компьютере и открой файл решения. Получишь тот же результат.
На этом мы завершим наш вводный урок посвященный основам языка C#. Кроме того, рекомендую прочитать статью Связный список C# — Linked List C#. А также подписывайтесь на группу ВКонтакте, Telegram и YouTube-канал. Там еще больше полезного и интересного для программистов. И не забывайте оставлять комментарии C# в коде своих проектов