Урок 3. Знакомство с консольной программой

Мы с вами уже создали два полноценных приложения, которыми можно похвастаться перед друзьями. Но, на самом деле программы бесполезны, так как не решают каких-то задач. Кроме того, вы писали программы, повторяя за мной все движения и не вникая в суть написанного кода. Но, чтобы писать самостоятельно свои программы, необходимо понимать язык программирования - его правила, законы, рекомендации.

Так уж вышло, что учебные приложения пишут в консольных окнах. Для многих это покажется скучным занятием. Но, на самом деле, консольные приложения позволяют не отвлекаться на мелочи и сфокусироваться на основах языка. А чтобы вы не скучали, мы будем параллельно создавать аналогичные программы с использованием Windows-форм (ура!). В старые добрые времена, когда на компьютерах стояла операционная система MS-DOS (или ей подобная), то именно консоль была основным устройством ввода-вывода. В настоящее время в Windows консоль существует в виде окна командной строки. Чтобы получить представление, как выглядит консоль, найдите в меню кнопки Пуск программу Командная строка или наберите в строке поиска кнопки Пуск слово cmd и нажмите клавишу Enter.

Первая консольная программа

Давайте напишем первую консольную програму на C#. Все, что она будет делать - это выводить сообщение в консольном окне и ждать нажатия клавиши Enter на клавиатуре компьютера.

Итак, нам необходимо создать новый проект. Повторяем шаги из предыдущих уроков - запускаем Visual Studio и в меню File выбераем команду New | Project.... Откроется уже знакомое диалоговое окно New Project. Выбераем в левой части окна тип проекта Visual C# | Windows. А теперь внимание. Если в предыдущих уроках мы использовали проекты типа Windows Forms Application, то теперь мы будем использовать шаблон Console Application. Далее меняем имя проекта - в поле Name удалите текст по умолчанию ConsoleApplication1 и вводим текст MyConsoleProgram. Еще раз обращаю внимание, что вам необходимо выработать привычку сразу давать проектам свои имена. Теперь можете выбрать место на диске, где будет храниться ваш проект.

Создание проекта для консольной программы

Рис.3.1. Создание проекта для консольной программы

Когда все приготовления закончены, то нажимаем на кнопку OK, и у вас откроется редактор кода Visual Studio со следующей заготовкой

using System;
using System.Collections.Generic;
using System.Text;

namespace MyConsoleProgram
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }
}

Добавьте пустую строчку между двумя фигурными скобками и напишите текст

System.Console.WriteLine("Мяу, куда подевалась мышь?");

Теперь ваша программа выглядит следующим образом

using System;
using System.Collections.Generic;
using System.Text;

namespace MyConsoleProgram
{
    class Program
    {
        static void Main(string[] args)
        {
            System.Console.WriteLine("Мяу, куда подевалась мышь?");
        }
    }
}

Вы написали код для самой простой консольной программы. Чтобы увидеть ее в действии, выберите в меню Debug | Start Without Debugging или нажмите комбинацию клавиш Ctrl+F5. Откроется консольное окно, в котором выводится наша строчка, а после нее идет строка Для продолжения нажмите любую клавишу.... Как только вы нажмете любую клавишу, программа сразу закроется.

Консольная программа

Разбор программы

Теперь давайте разбираться с программой. А начнем мы не с первых строчек кода, а с середины. Наверняка, вы уже поняли, что за вывод текста на экран используется та самая строчка, которую мы вставили. Обратите внимание, что слова, которые мы хотим видеть на экране, обрамлены двойными кавычками. Вы можете теперь написать свои слова, например, Спартак-чемпион и запустить программу. Попробуйте прямо сейчас.

Идем дальше. Запомните, что все приложения на C# начинают выполняться с вызова метода Main() (пишется с заглавной буквы). Еще эту функцию называют точкой входа в программу. Хотя Main играет важную роль в C#, это слово не является ключевым. И вы можете использовать переменную Main при желании (только зачем?). После слова Main идут круглые скобки. Скобки могут быть пустыми - это говорит о том, что Main не имеет параметров. В нашем случае в скобках что-то прописано, но вы можете смело удалить весь текст между скобками, и программа, по-прежнему будет работать. На слова static и void пока не обращаем внимания. И, наконец, после круглых скобок идет открывающая фигурная скобка, которая указывает на начало кода метода Main(). Весь код для метода Main помещается между открывающей и закрывающей фигурными скобками.

Возвращаемся к нашей добавленной строке. Внутри метода Main() идет строка

System.Console.WriteLine("Мяу, куда подевалась мышь?");

System.Console.WriteLine является методом, который принимает один параметр — текстовую строку — и показывает ее на консоли, в окне командной строки.

Фактически, мы передаем в скобках после названия метода информацию, которая называется аргументом данного метода. Длинное имя метода System.Console.WriteLine состоит из следующих частей:

  • System — пространство имен
  • Console — класс, определенный в этом пространстве имен
  • WriteLine — метод, определенный в этом классе; метод — то же самое, что и функция, процедура или подпрограмма

Записывая пространство имен System, имя класса Console и имя метода WriteLine через точку, вы сообщаете компилятору, что метод WriteLine является членом класса Console, который в свою очередь относится к пространствую имен System. Еще один важный момент: все операторы в C# заканчиваются точкой с запятой (;).

Полное название метода может быть очень длинным, и вводить каждый раз длинную строчку достаточно утомительно. Использование пространств имен позволяет уменьшить объем ввода с клавиатуры. Для этого предназначено ключевое слово using. Пространство имен указывается один раз в операторе using, затем это пространство имен можно не вводить при обрашении к его классам. Вот как можно переписать нашу программу. Если вы посмотрите на саму первую строчку кода, то увидите, что там уже есть строка

using System;

Следовательно, мы можем немного сократить свой код:

Console.WriteLine("Мяу, куда подевалась мышь?");

В данном примере преимущество использования using не так заметно, но при создании сложных программ, где требуется вызов нескольких десятков методов, эта возможность поможет вам сэкономить время и силы. Также там имеются еще две строки с использованием using - не обращаем внимания (можете удалить)

Еще осталась не разобранной строка class Program - В этой строке ключевое слово class указывает на то, что объявляется новый класс Program. Название класса вы можете придумывать самостоятельно. Наконец, осталась еще строка namespace MyConsoleProgram - эту строчку тоже можно удалить.

В результате, если удалим все лишние строчки, мы получим такой код:

using System;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Мяу, куда подевалась мышь?");
    }
}

Можете считать это минимальным каркасом для ваших будущих программ. Но мы не будем удалять в следующих примерах без нужды лишние строчки.

Заключение

Итак, мы написали свою первую консольную программу на C#. В заключение приведем несколько правил, которые вам предстоит запомнить и придерживаться при написании программ.

Во-первых, язык C# чувствителен к регистру. Значит, слова WriteLine, writeline, wrItElInE - это все разные слова. Будьте внимательны, новички часто не могут понять, почему не работает программа, не замечая, что по ошибке написали одну букву в слове в другом регистре.

Во-вторых, каждый оператор должен заканчиваться точкой с запятой. Это важный момент. C# позволяет писать код в свободной форме. Например, можно было написать так:

using System;

class FirstProgram 
{
    public static void Main() 
    {
         Console.WriteLine(
"Мяу, куда подевалась мышь?"
             )
         ;
    }
} 

Таким образом, точка с запятой дает понять, что один оператор закончился, и за ним может следовать другой. При желании, можете даже переписать программу в одну строчку.

Итоги

Итак, вы получили базовые представления о том, как создаются приложения с окнами (Windows Forms) и консольные приложения. Настало время глубже окунуться в программирование и научиться создавать уже собственные программы, которые будут подчиняться вашим правилам. Об этом в следующем уроке.

Реклама