Параметры метода Main()
Выполнение программы сводится к вызову методов в определенной последовательности. Методу могут передаваться аргументы, а из метода – возвращаться значение.
С другой стороны сама программа может быть запущена из другой программы и может запускать другую программу.
В рамках данного вопроса рассмотрим вариант, когда программа запускается из среды исполнения. Поскольку метод Main() выполняется первым при запуске программы, то именно через этот метод производится прием аргументов.
Для запуска программы в среде исполнения формируется команда. Команда должна содержать спецификацию исполнимого файла и возможно аргументы, которые в команде указываются через пробел.
C:\PR\PR\BIN\DEBUG\pr.exe_аргумент1_ аргумент2_... _аргументN
Состав параметров метода Main фиксирован: Main (string[] args)
Метод принимает параметры из команды в виде массива строк. Каждая строка хранит символьное представление одного аргумента.
Пример
Разработать программу, предназначенную для хранения в виде массива цен на товары и их изменения на заданную сумму. Изменение выполняется методами
· Plus – увеличение
· Minus – уменьшение
Исполняемый файл хранится в файле pr.exe.
Соглашение об аргументах в команде
1. Сумма
2. Вид операции
· Плюс (в любом регистре) или +
· Минус (в любом регистре) или –
3. Фамилия оператора (ключ)
Пример команды
C:\PR\PR\BIN\DEBUG\pr.exe_50_Плюс_Иванов
Массив args в Main()
public static void Plus(double[] p, double s)
// массив цен, сумма, на которую увеличиваем
{
for (int i = 0; i < p.Length; i++)
p[i] += s;
}
public static void Minus(double[] p, double s)
{
for (int i = 0; i < p.Length; i++)
p[i] -= s;
}
public static Main(string[] args)
{
double[] pr; //массив с ценами
double delta; //сумма
string key = "Иванов"; //ключ
pr = new double[] { 100.0, 200.0, 300.0 };
//проверяем сколько аргументов нам передали
if (args.Length != 3) return;
//завершение программы - ошибка1
//проверка фамилии
if (args[2] != key) return;
//завершение программы - ошибка2
//пересчет цен
delta = double.Parse(args[0]);
//чтение операции
switch (args[1].ToUpper())
{
case "ПЛЮС":
case "+": Plus(pr, delta); break;
case "МИНУС":
case "-": Minus(pr, delta); break;
}
//вывод новых цен
return;
}
Дата добавления: 2019-02-08; просмотров: 610;