Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Страница 49
Поскольку возвращаемое значение передается системе в момент завершения работы приложения, вполне очевидно, что получить и отобразить финальный код ошибки во время выполнения приложения невозможно. Однако мы покажем, как просмотреть код ошибки по завершении программы, изменив операторы верхнего уровня следующим образом:
// Обратите внимание, что теперь возвращается int, а не void.
// Вывести сообщение и ожидать нажатия клавиши <Enter>.
Console.WriteLine("***** My First C# App *****");
Console.WriteLine("Hello World!");
Console.WriteLine();
Console.ReadLine();
<b>// Возвратить произвольный код ошибки.</b>
<b>return -1;</b>
Если программа в качестве точки входа по-прежнему использует метод
Main()
int
void
static <b>int</b> Main()
{
…
}
Теперь давайте захватим возвращаемое значение программы с помощью пакетного файла. Используя проводник Windows, перейдите в папку, где находится файл решения (например,
С:\SimpleCSharpApp
SimpleCSharpApp.cmd
*.cmd
@echo off
rem Пакетный файл для приложения SimpleCSharpApp.exe,
rem в котором захватывается возвращаемое им значение.
dotnet run
@if "%ERRORLEVEL%" == "0" goto success
:fail
echo This application has failed!
echo return value = %ERRORLEVEL%
goto end
:success
echo This application has succeeded!
echo return value = %ERRORLEVEL%
goto end
:end
echo All Done.
Откройте окно командной подсказки (или терминал VSC) и перейдите в папку, содержащую новый файл
*.cmd
Main()
-1
0
This application has succeeded!
***** My First C# App *****
Hello World!
This application has failed!
return value = -1
All Done.
Ниже приведен сценарий
PowerShell
*.cmd
dotnet run
if ($LastExitCode -eq 0) {
Write-Host "This application has succeeded!"
} else
{
Write-Host "This application has failed!"
}
Write-Host "All Done."
Введите
PowerShell
.\SimpleCSharpApp.psl
Вот что вы увидите в терминальном окне:
***** My First C# App *****
Hello World!
This application has failed!
All Done.
В подавляющем большинстве приложений C# (если только не во всех) в качестве возвращаемого значения будет применяться
void
Main()
void
Обработка аргументов командной строки
Теперь, когда вы лучше понимаете, что собой представляет возвращаемое значение метода
Main()
for
// Вывести сообщение и ожидать нажатия клавиши <Enter>.
Console.WriteLine("***** My First C# App *****");
Console.WriteLine("Hello World!");
Console.WriteLine();
<b>// Обработать любые входные аргументы. </b>
<b>for (int i = 0; i < args.Length; i++) </b>
<b>{ </b>
<b> Console.WriteLine("Arg: {0}", args[i]); </b>
<b>} </b>
Console.ReadLine();