
- •Язык c# и структура простой программы
- •Что такое .Net Framework
- •Что такое с#
- •Создание первой программы на с#
- •Пространство имен System
- •С# как язык Объектно-Ориентированного Программирования (ооп)
- •Состав и назначение файлов проекта
- •Структура сборки
- •Элементы языка c#
- •Базовый синтаксис с#
- •Переменные
- •Числа без знака
- •Числа со знаком
- •Числа для финансистов
- •Текстовые символы
- •Логический тип данных
- •Литералы с плавающей точкой
- •Символьные литералы
- •Строковые литералы
- •Выражения и операторы с#
- •Инициализация переменных и оператор присваивания
- •Значение в левой части
- •Ввод данных с консоли
- •Математические операторы
- •Вычисление остатка при целочисленном делении
- •Унарные операторы
- •Унарное логическое отрицание
- •Составные операторы
- •Поразрядные операторы
- •Поразрядное логическое и
- •Поразрядное логическое или
- •Поразрядное логическое исключающее или
- •Унарная поразрядная операция дополнения
- •Поразрядный сдвиг
- •Пример использования поразрядных операторов
- •Логические операторы
- •Операторы отношения
- •Приоритеты операторов
- •Исполнители алгоритмов
- •Исполнитель Чертежник
- •Исполнитель Робот
- •Компьютер как формальный исполнитель алгоритмов
- •Блок-схема
- •Псевдокод
- •Необходимые свойства алгоритма
- •Понятие о временной сложности алгоритма
- •Примеры
- •Правила для определения сложности
- •Тернарный условный оператор
- •Применение логических операций
- •Конструкция выбора
- •Примеры применения оператора выбора
- •Объединение меток case
- •Пропущенный break
- •Пример программы: Простые числа
- •Пример обработки одномерного массива чисел
- •Использование генератора случайных данных
- •Использование оператора foreach
- •Типы задач обработки одномерных числовых массивов
- •Поиск элемента в массиве
- •Многомерные массивы
- •Базовые операции со строками
- •Методы типа string
- •Копирование и клонирование строк
- •Конкатенация строк
- •Извлечение подстроки
- •Вставка подстроки
- •Замена символов и строк
- •Удаление символов из строки
- •Удаление незначащих пробелов
- •Преобразование к верхнему и нижнему регистру
- •Выравнивание по левому и правому краю поля
- •Объединение массива строк
- •Разбор строки
- •Сравнение строк
- •Форматирование текстовых строк
- •Функции
- •Описание и использование функций
- •Возвращаемые значения
- •Передача параметров
- •Выходные параметры
- •Область действия переменных
- •Область действия переменных и управляющие конструкции
- •Рекурсия
- •Параметры функции Main()
- •Перегрузка функций
- •Перечислимый тип
- •Определение перечислимых типов
- •Структуры
- •Описание структур
- •Использование структур в качестве параметров функций
- •Использование структур в качестве возвращаемых значений функций
- •Функции структур
- •Файлы и потоки
- •Основные классы ввода и вывода
- •Классы для работы с потоками
- •Классы для работы с потоками текстовых символов
- •Работа с текстовыми файлами
Файлы и потоки
Большинство программ, так или иначе, работают с каталогами и файлами. Средства для работы с файлами предусмотрены практически в любом языке программирования. Эти средства могут быть встроены непосредственно в язык, а также входить в стандартные библиотеки функций и классов, поставляющихся вместе с компилятором.
Программы, составленные на языке С#, работают с каталогами и файлами при помощи специально предназначенных для этого классов, входящих в состав библиотеки классов Microsoft .NET Framework.
Все операции с файлами выполняются в программах С# с помощью так называемых потоков данных (data stream). Программы могут выполнять над потоками данных 3 операции:
запись данных в поток,
чтение данных из потока,
позиционирование.
Для потоков, связанных с файлами, определено также такое понятие, как текущая позиция внутри файла. Перед началом операций ввода-вывода программа должна открыть поток. При этом текущая позиция устанавливается на начало файла. При чтении файла или записи в файл блоков данных текущая позиция сдвигается к концу файла на количество байтов, равное размеру прочитанного или записанного блока данных. При помощи средств позиционирования программа может установить текущую позицию в произвольное место файла. Когда работа с файлом закончена, программа обязательно должна закрыть соответствующий поток явным образом.
Программа С# может работать с потоками нескольких типов:
стандартными потоками ввода и вывода,
потоками, связанными с локальными файлами,
потоками, связанными с файлами в оперативной памяти.
Стандартные потоки и классы
Стандартные потоки
Стандартные потоки обычно связаны с консолью и клавиатурой, но могут быть перенаправлены в файлы средствами операционной системы. По своему назначению эти потоки больше всего напоминают стандартные потоки ввода и вывода, а также стандартный поток вывода сообщений об ошибках.
Практически все программы, примеры которых приводились в данном курсе, работают со стандартными потоками ввода и вывода. Для вывода данных в стандартный поток вывода применялись методы System.Console.Write() и System.Console.WriteLine(). Ввод данных из стандартного потока выполнялся с помощью метода System.Console.ReadLine().
Основные классы ввода и вывода
Классы, реализующие операции с файлами, достаточно многочисленны. Тем не менее, можно выделить основные группы действий, которые необходимы при работе с файлами, и классы, методы которых выполняют эти действия.
Класс BinaryReader предназначен для чтения блоков данных из потоков ввода на уровне отдельных байтов. Обычно для чтения объектов из файлов, таких, как строки и числа, программисты используют другие, более мощные классы.
Класс BinaryWriter служит в качестве низкоуровневого средства записи данных в потоки вывода.
Класс File предназначен для работы с оглавлениями каталогов. С помощью статических методов этого класса можно получить список файлов и каталогов, расположенных в заданном каталоге, создать или удалить каталог, переименовать файл или каталог, а также выполнить некоторые другие операции.
С помощью статических методов класса Directory программа может получать списки каталогов и подкаталогов, создавать и удалять каталоги, а также выполнять над каталогами другие подобные операции.
Класс Path обеспечивает методы и свойства, с помощью которых программы могут работать с именами и полными путями каталогов.