
- •Язык c# и структура простой программы
- •Что такое .Net Framework
- •Что такое с#
- •Создание первой программы на с#
- •Пространство имен System
- •С# как язык Объектно-Ориентированного Программирования (ооп)
- •Состав и назначение файлов проекта
- •Структура сборки
- •Элементы языка c#
- •Базовый синтаксис с#
- •Переменные
- •Числа без знака
- •Числа со знаком
- •Числа для финансистов
- •Текстовые символы
- •Логический тип данных
- •Литералы с плавающей точкой
- •Символьные литералы
- •Строковые литералы
- •Выражения и операторы с#
- •Инициализация переменных и оператор присваивания
- •Значение в левой части
- •Ввод данных с консоли
- •Математические операторы
- •Вычисление остатка при целочисленном делении
- •Унарные операторы
- •Унарное логическое отрицание
- •Составные операторы
- •Поразрядные операторы
- •Поразрядное логическое и
- •Поразрядное логическое или
- •Поразрядное логическое исключающее или
- •Унарная поразрядная операция дополнения
- •Поразрядный сдвиг
- •Пример использования поразрядных операторов
- •Логические операторы
- •Операторы отношения
- •Приоритеты операторов
- •Исполнители алгоритмов
- •Исполнитель Чертежник
- •Исполнитель Робот
- •Компьютер как формальный исполнитель алгоритмов
- •Блок-схема
- •Псевдокод
- •Необходимые свойства алгоритма
- •Понятие о временной сложности алгоритма
- •Примеры
- •Правила для определения сложности
- •Тернарный условный оператор
- •Применение логических операций
- •Конструкция выбора
- •Примеры применения оператора выбора
- •Объединение меток case
- •Пропущенный break
- •Пример программы: Простые числа
- •Пример обработки одномерного массива чисел
- •Использование генератора случайных данных
- •Использование оператора foreach
- •Типы задач обработки одномерных числовых массивов
- •Поиск элемента в массиве
- •Многомерные массивы
- •Базовые операции со строками
- •Методы типа string
- •Копирование и клонирование строк
- •Конкатенация строк
- •Извлечение подстроки
- •Вставка подстроки
- •Замена символов и строк
- •Удаление символов из строки
- •Удаление незначащих пробелов
- •Преобразование к верхнему и нижнему регистру
- •Выравнивание по левому и правому краю поля
- •Объединение массива строк
- •Разбор строки
- •Сравнение строк
- •Форматирование текстовых строк
- •Функции
- •Описание и использование функций
- •Возвращаемые значения
- •Передача параметров
- •Выходные параметры
- •Область действия переменных
- •Область действия переменных и управляющие конструкции
- •Рекурсия
- •Параметры функции Main()
- •Перегрузка функций
- •Перечислимый тип
- •Определение перечислимых типов
- •Структуры
- •Описание структур
- •Использование структур в качестве параметров функций
- •Использование структур в качестве возвращаемых значений функций
- •Функции структур
- •Файлы и потоки
- •Основные классы ввода и вывода
- •Классы для работы с потоками
- •Классы для работы с потоками текстовых символов
- •Работа с текстовыми файлами
- •Запись двоичных данных
- •Пример программы для работы с двоичным файлом
- •Просмотр содержимого каталога
- •Получение информации о каталоге
Параметры функции Main()
Существуют четыре различных способа описания, которые можно использовать для функции Main():
static void Main()
static void Main(string[] args)
static int Main()
static int Main(string[] args)
Третья и четвертая версии описания, приведенные выше, возвращают значение типа int, которое может быть использовано для указания на то, каким образом завершилось выполнение приложения, и которое часто используется для определения ошибки (это в большинстве случаев является крайне желательным или даже обязательным).
Обычно, возвращаемое значение равно 0, что означает "нормальное" окончание (т. е. приложение закончило свою работу и может быть завершено в безопасном режиме), если при выполнении программы не возникло каких-либо исключительных ситуаций, которых она не смогла обработать. В противном случае возвращается ненулевое значение, определяемое программистом.
Параметр args функции Main() обеспечивает возможность приложению получать извне информацию, задаваемую в момент его запуска на выполнение. Эта информация обычно задается в виде параметров командной строки.
Параметры командной строки не часто используются, если приложения запускаются из операционной системы с графическим интерфейсом. Но когда производится запуск приложения из командной строки, то при этом имеется возможность дополнительно задать некоторую информацию, например, имя файла, загрузка которого требуется для выполнения приложения. В качестве примера можно Windows-приложение Notepad (Блокнот). Запустить его можно, просто набрав notepad — либо в окне командного приглашения, либо в окне, которое появляется при выборе опции Run (Выполнить) из меню Start (Пуск).
Однако в этих же окнах можем набрать нечто вроде: notepad myfile.txt. В результате Notepad либо загрузит файл myfile.txt, либо, если такого файла не существует, предложит его создать. В данном случае "myfiie.txt" является аргументом командной строки. Можно написать консольное приложение, которое будет работать аналогичным образом, используя параметр args.
Когда консольное приложение запускается, то все заданные параметры командной строки помещаются в массив args. В дальнейшем эти параметры могут использоваться по мере необходимости. Рассмотрим пример выполнения таких действий.
using System;
namespace MainArgs
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Задано {0} аргументов командной строки:",
args.Length);
foreach (string arg in args)
{
Console.WriteLine(arg);
}
Console.ReadLine();
}
}
}
В данной программе параметр args используется точно таким же образом, как мог быть использован любой другой строковый массив. Никакой обработки аргументов пока не выполняется, просто происходит вывод на экран всего, что было задано через командную строку.
Чтобы запустить эту программу, нужно открыть окно командной строки в той директории, куда записывается выполнимый файл программы, и набрав следующий текст:
MainArgs.exe p1 p2 "p3 p4"
Результатом выполнения программы будет:
Но при отладке программы удобнее задавать аргументы посредством диалога Project Properties в Visual Studio:
В этом случае результатом будет:
Это удобный способ использовать одни и те же аргументы при каждом запуске приложения из Visual Studio: в противном случае пришлось бы набирать их в командной строке при каждом запуске приложения.
Обратите внимание, что каждый аргумент отделяется от других с помощью пробелов; также существует возможность заключать аргументы в двойные кавычки — в том случае, если потребуется задать более длинный аргумент (двойные кавычки обязательны, если аргумент сам по себе содержит пробелы,— для того, чтобы он не рассматривался в качестве нескольких аргументов).