Лекции по C# (1 курс, физики, 2013) Первый проект Создание консольного приложения в MS Visual Studio 2008 1. Откройте среду MS Visual Studio 2008 2. В главном меню выберите команду File.New.Project…. Откроется окно шаблонов проектов New Project. 3. На левой панели типов проектов «Project types:» выберите Visual C#. Windows 4. На правой панели шаблонов «Templates:» выберите шаблон Console Application. 5. В строке «Location:» кнопкой Browse… укажите место расположения проекта в файловой системе. Вначале рекомендую использовать каталог …\Visual Studio 2008\Projects. 6. В строке «Solution Name:» введите имя solFirst. Solution (решение) это логический контейнер, в котором можно размещать проекты. Среда создаст каталог с именем solFirst, в который будут помещаться каталоги проектов и в котором среда разместит свои управляющие файлы, необходимые ей для работы с проектами. 7. В строке «Name:» наберите имя проекта cnslFirst. 8. Нажмите кнопку OK. Структура программы Откроется окно следующего содержания using System; using System.Collections.Generic; 1 using System.Linq; using System.Text; namespace cnslFirst { class Program { static void Main(string[] args) { } } } Комментарий 1. Любая программа на C# представляет собой выполнение метода с именем Main. Внутри этого метода (между фигурными скобками {}) набираются операторы, которые требуется выполнить. К примеру, были написаны следующие операторы // Комментарий пользователю Console.Write("Введите i = "); // Ввод целого числа с клавиатуры string s; s = Console.ReadLine(); int i; i = int.Parse(s);// После этого в i есть то, что набрано Console.Write("Теперь j = "); int j = int.Parse(Console.ReadLine()); // Вывожу результат умножения i*j Console.WriteLine("{0}*{1} = {2}", i, j, i * j); // Задержка Console.ReadLine(); Наберите их и нажмите кнопку с зеленой сплошной стрелочкой (start Debugging F5). Методы, использованные в коде: Методы Write, WriteLine класса System.Console выводят на экран значения, определяемые параметрами, с которыми эти методы вызываются. Метод WriteLine сдвигает каретку на новую строку после вывода. Метод ReadLine вводит строку с буфера клавиатуры в память после нажатия клавиши Enter. Метод Parse структуры int преобразует строку, вводимую в качестве параметра, в целое число Используя справочную систему, найдите и почитайте статьи, посвященные этим методам, используя клавишу F1. Код программы является набором команд, выраженных операторами. В приведенном фрагменте кода использованы следующие операторы: Оператор «точка» используется как разделитель при записи имени. Например, Console.Write означает, что вызывается метод с именем Write класса с именем Console. То же int.Parse означает, что вызывается метод Parse структуры целых чисел int. 2 2. 3. 4. 5. 6. 7. Оператор «круглые скобки» используется при вызове методов. Так в выражении Console.Write("Введите i = ") круглые скобки содержат указание фактического параметра, который передается методу Console.Write при его вызове. При вызове метода Console.ReadLine() параметр не передается, но скобки все равно ставятся. Оператор назначения = сохраняет значение, полученное в правой части, в месте хранения, указанном в левой части. В приведенном фрагменте оператор назначения используется в трех выражениях o s = Console.ReadLine() сохраняет строку, прочитанную из буфера клавиатуры, в месте хранения, указанном переменной s; o i = int.Parse(s) сохраняет целое число, представленное в строке s в виде набора символов, в месте хранения I; o int j = int.Parse(Console.ReadLine()) сохраняет целое число, прочитанное как набор символов (строку) из буфера клавиатуры, в месте хранения j; Оператор умножения * вычисляет произведение двух чисел. На вкладке Index меню Help найдите статью с названием Операторы C# и найдите описание приведенных операторов. В приведенном фрагменте встречаются также описания переменных. Это выражения string s – описание переменной s типа string (строка – набор символов); int i и int j – описания переменных i и j целого типа. Выражения, взятые в двойные кавычки "Введите i = ", "Теперь j = ","{0}*{1} = {2}", являются постоянными типа string . В последней строке цифры 0,1,2, взятые в фигурные скобки, означают места в строке, в которые будут подставлены значения i, j,i*j соответственно пр выводе на экран. Метод Main является методом класса Program и описывается в фигурных скобках внутри этого класса. Класс Program является классом – членом пространства имен (namespace) cnslFirst. Поэтому для внешней среды имя метода полное имя метода Main имеет вид cnslFirst.Program.Main. Класс Console, используемый в коде, является членом библиотечного пространства имен System и его полное имя System.Console. Для сокращения записи имен классов в начале файла использована директива using System. Она означает, что внутри кода можно обращаться к классам из пространства имен System, указывая краткое имя класса. Методы служат для хранения кода, состоящего из операторов. Это просто поименованные контейнеры, которые можно описывать и затем вызывать целиком. Вне методов код не пишется. Методы не могут содержать классы или пространства имен (следите за фигурными скобками!!!). У метода могут быть параметры. В примере параметры имеют методы Main, Console.Write, Console.WriteLine, int.Parse. Параметров может не быть (метод Console.ReadLine). Методы могут возвращать значение (это int.Parse и Console.ReadLine) и могут ничего не возвращать (это Main, Console.Write, Console.WriteLine). Классы – это поименованные контейнеры, служащие для хранения методов. Классы не могут содержать пространства имен. Пространства имен это поименованные фрагменты программы, служащие для хранения классов. Пространства имен не могут непосредственно содержать методы. Поэтому иерархия контейнеров выглядит так: внешний контейнер – пространство имен (в примере cnslFirst), в нем находится класс (в примере Program), в классе находятся методы (в примере Main), в методе находятся описания и операторы, формирующие код. Полное имя метода Main в примере cnslFirst.Program.Main. Именно так называется метод Main для внешнего кода. 3