
- •Язык c# и структура простой программы
- •Что такое .Net Framework
- •Что такое с#
- •Создание первой программы на с#
- •Пространство имен System
- •С# как язык Объектно-Ориентированного Программирования (ооп)
- •Состав и назначение файлов проекта
- •Структура сборки
- •Элементы языка c#
- •Базовый синтаксис с#
- •Переменные
- •Числа без знака
- •Числа со знаком
- •Числа для финансистов
- •Текстовые символы
- •Логический тип данных
- •Литералы с плавающей точкой
- •Символьные литералы
- •Строковые литералы
- •Выражения и операторы с#
- •Инициализация переменных и оператор присваивания
- •Значение в левой части
- •Ввод данных с консоли
- •Математические операторы
- •Вычисление остатка при целочисленном делении
- •Унарные операторы
- •Унарное логическое отрицание
- •Составные операторы
- •Поразрядные операторы
- •Поразрядное логическое и
- •Поразрядное логическое или
- •Поразрядное логическое исключающее или
- •Унарная поразрядная операция дополнения
- •Поразрядный сдвиг
- •Пример использования поразрядных операторов
- •Логические операторы
- •Операторы отношения
- •Приоритеты операторов
- •Исполнители алгоритмов
- •Исполнитель Чертежник
- •Исполнитель Робот
- •Компьютер как формальный исполнитель алгоритмов
- •Блок-схема
- •Псевдокод
- •Необходимые свойства алгоритма
- •Понятие о временной сложности алгоритма
- •Примеры
- •Правила для определения сложности
- •Тернарный условный оператор
- •Применение логических операций
- •Конструкция выбора
- •Примеры применения оператора выбора
- •Объединение меток case
- •Пропущенный break
- •Пример программы: Простые числа
- •Пример обработки одномерного массива чисел
- •Использование генератора случайных данных
- •Использование оператора foreach
- •Типы задач обработки одномерных числовых массивов
- •Поиск элемента в массиве
- •Многомерные массивы
- •Базовые операции со строками
- •Методы типа string
- •Копирование и клонирование строк
- •Конкатенация строк
- •Извлечение подстроки
- •Вставка подстроки
- •Замена символов и строк
- •Удаление символов из строки
- •Удаление незначащих пробелов
- •Преобразование к верхнему и нижнему регистру
- •Выравнивание по левому и правому краю поля
- •Объединение массива строк
- •Разбор строки
- •Сравнение строк
- •Форматирование текстовых строк
- •Функции
- •Описание и использование функций
- •Возвращаемые значения
- •Передача параметров
- •Выходные параметры
- •Область действия переменных
- •Область действия переменных и управляющие конструкции
- •Рекурсия
- •Параметры функции Main()
- •Перегрузка функций
- •Перечислимый тип
- •Определение перечислимых типов
- •Структуры
- •Описание структур
- •Использование структур в качестве параметров функций
- •Использование структур в качестве возвращаемых значений функций
- •Функции структур
- •Файлы и потоки
- •Основные классы ввода и вывода
- •Классы для работы с потоками
- •Классы для работы с потоками текстовых символов
- •Работа с текстовыми файлами
- •Запись двоичных данных
- •Пример программы для работы с двоичным файлом
- •Просмотр содержимого каталога
- •Получение информации о каталоге
Создание первой программы на с#
Первое приложение, которое мы собираемся создать, будет простым консольным приложением. Консольными называются такие приложения, в которых не используется многооконная графическая среда; поэтому нам не придется беспокоиться о кнопках, меню, организации взаимодействия с указателем мыши и тому подобных вещах. Это приложение будет запускаться из окна командной строки, и взаимодействие с ним будет организовано весьма простым способом.
Выполнив необходимые шаги по созданию такого приложения (на лабораторной работе), мы получим следующий текст:
using System;
namespace ConsoleApplication_1
{
class Class_1
{
static void Main(string[] args)
{
Console.WriteLine("Первая программа на C#");
}
}
}
Запустив ее на выполнение, мы получим следующий результат:
Как видите, исходный текст программы состоит всего из нескольких строк, причем некоторые из них используются только для описаний программы и ее объектов, а некоторые непосредственно исполняются и приводят к появлению видимых результатов. На данном этапе вам нужно представлять себе только общую структуру этой программы, не вникая в подробности.
Пространство имен System
Первая строка нашей программы содержит ключевое слово using и предписывает компилятору просматривать (использовать) в процессе своей работы так называемое пространство имен System:
using System;
В состав среды выполнения программ Microsoft Framework .NET входит обширная библиотека, насчитывающая десятки тысяч классов. Сильно упрощая, скажем, что классы представляют собой описания некоторых данных и методов работы с этими данными. Пользуясь классами как кирпичиками (или как прототипами), можно создавать весьма и весьма сложные программы, не затрачивая на это колоссальных усилий.
Чтобы компилятор мог ориентироваться в названиях классов, а также в определенных в рамках этих классов символических именах, в языке С# используются пространства имен.
Указывая при помощи ключевого слова using пространство имен System, мы открываем компилятору доступ к классам, необходимым, в частности, для ввода текстовых строк с клавиатуры и вывода их на консоль. В своих примерах программ мы постоянно будем использовать пространство имен System и другие пространства имен.
Определение собственного пространства имен
Любая, даже простейшая программа С# создает свои классы. Она также может определять для этих классов собственные пространства имен. Такое определение делается при помощи ключевого слова namespace:
namespace ConsoleApplication_1
{
. . .
}
После ключевого слова namespace указывается параметр – имя определяемого пространства имен. В данном случае наше пространство имен будет называться ConsoleApplication_l. С помощью фигурных скобок мы ограничиваем строки программы, имеющие отношение к определяемому пространству имен.
Класс Class_1
Как вы скоро узнаете, все данные в языке С# представляются в виде объектов некоторых классов. Наша программа тоже создает класс Class_1, в котором определен единственный метод Main:
class Class_1
{
static void Main(string[] args)
{
Console.WriteLine("Первая программа на C#");
}
}
Отвлечемся пока от ключевых слов static и void, а также от круглых скобок, расположенных после имени метода Main. Чтобы система Microsoft .NET Framework могла запустить приложение, в одном из классов приложения необходимо определить метод с именем Main. Этот метод нужно сделать статическим, снабдив ключевым словом static, иначе ничего не получится.
В первой (и единственной) строке нашего метода мы обращаемся к методу WriteLine, предназначенному для вывода данных на консоль. Этот метод определен в классе Console, который принадлежит упоминавшемуся ранее пространству имен System. В круглых скобках методу WriteLine передаются параметры, определяющие, что собственно нужно выводить на консоль. В данном случае мы выводим текстовую строку, "Первая программа на C#", ограничив ее двойными кавычками.
Такую программу удобно запускать изнутри Visual Studio, так как среда разработки после завершения работы программы выводит сообщение «Для продолжения нажмите любую клавишу . . .». Если же эту программу запустить непосредственно из MS Windows, то окно программы закроется еще до того, как Вы успеете что-либо прочесть. Во избежание этого используется метод Main, состоящий из двух строк:
static void Main(string[] args)
{
Console.WriteLine("Первая программа на C#");
Console.ReadLine();
}
Метод ReadLine тоже определен в классе Console из пространства имен System. Он предназначен для получения текстовой строки, введенной с клавиатуры. Мы не передаем методу ReadLine никаких параметров. Единственное назначение метода ReadLine в нашей программе — приостановить ее работу после вывода на консоль строки сообщения. Для завершения работы программы достаточно будут нажать на клавишу Enter.