Почему C# использует неявную Основную пустоту?

Я не понимаю почему C# Main функция является пустой по умолчанию (в консольном проекте, например). В C и C++ в стандарте ясно говорится основной, должен возвратить интервал, и использование возвращаемого значения имеет смысл, потому что мы можем проверить, что возвращаемое значение из внешней программы и видит, встретилось ли приложение C/C++, законченное успешно или, с ошибкой.

Таким образом, мои вопросы:

  1. Почему Visual Studio объявляет Main как пусто?
  2. Что такое лучший способ возвратиться значение к ОС, как только консольное приложение C# закончило выполняться?
13
задан IVlad 2 March 2010 в 15:11
поделиться

8 ответов

В C # вы можете использовать, см. MSDN :

 static int Main() 
 static int Main(string[] args)
 static void Main() 
 static void Main(string[] args)

Вы также можете вернуть значение (int) двумя способами.

В консольном приложении я бы использовал int Main () {...; возврат 2; }

В приложении WinForms / WPF / ..., в редких случаях, когда требуется возвращаемое значение, я бы использовал
Environment.ExitCode = 1; или Environment.Exit (1) ;

12
ответ дан 1 December 2019 в 17:45
поделиться

Лучший способ вернуть значение выхода - использовать. Я говорю это, потому что ненулевые коды выхода обычно используются для обозначения некоторой ошибки, обычно такой, с которой вы не хотите продолжать. Вызов Exit с ненулевым значением выхода сигнализирует об ошибке через значение и завершает программу.

Environment.Exit( value );

РЕДАКТИРОВАТЬ : обратите внимание, контекст для моего оператора находился в пределах Main для консольной программы. Библиотеки и другие методы должны вызывать исключения или возвращать значения ошибок. Только ваша основная процедура должна вызывать Exit . Извините, если это было непонятно.

2
ответ дан 1 December 2019 в 17:45
поделиться

Вы можете использовать Environment.Exit () для завершения и возврата целочисленного кода в ОС. В качестве альтернативы вы можете установить Environment.ExitCode , и этот код будет возвращаться в ОС всякий раз, когда ваша программа завершится нормально.

0
ответ дан 1 December 2019 в 17:45
поделиться

В качестве возвращаемого типа можно использовать либо int , либо void . Таким образом, просто измените его и верните значение, как в C ++.

Может быть, по умолчанию он недействителен, чтобы не озадачить новичков.

16
ответ дан 1 December 2019 в 17:45
поделиться

Это не неявный void. Вы не можете просто объявить main(String[] args) и заставить ее компилироваться как функцию void. Проекты по умолчанию объявляют main() как void, потому что в проектах по умолчанию нет ничего полезного, что можно было бы вернуть из main.

Стоит также отметить, что C# - это не C или C++. Некоторый синтаксис одинаков, но различия гораздо шире.

7
ответ дан 1 December 2019 в 17:45
поделиться

Причины, по которым разработчики C# решили объявить Main как void, я назвать не могу. Что касается возврата значений в ОС по завершении работы приложения, вы можете использовать следующее:

System.Environment.ExitCode = 1; // Or whatever number other than 0 for errors.
6
ответ дан 1 December 2019 в 17:45
поделиться

Вы можете изменить возвращаемый тип Main без каких-либо проблем.

3
ответ дан 1 December 2019 в 17:45
поделиться

Помните, что вокруг вашей программы есть еще одна "коробка" - CLR. Он будет возвращать коды ошибок, когда ваш код выбросит необработанное исключение.

2
ответ дан 1 December 2019 в 17:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: