Я не понимаю почему C# Main
функция является пустой по умолчанию (в консольном проекте, например). В C и C++ в стандарте ясно говорится основной, должен возвратить интервал, и использование возвращаемого значения имеет смысл, потому что мы можем проверить, что возвращаемое значение из внешней программы и видит, встретилось ли приложение C/C++, законченное успешно или, с ошибкой.
Таким образом, мои вопросы:
Main
как пусто?В 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) ;
Лучший способ вернуть значение выхода - использовать. Я говорю это, потому что ненулевые коды выхода обычно используются для обозначения некоторой ошибки, обычно такой, с которой вы не хотите продолжать. Вызов Exit
с ненулевым значением выхода сигнализирует об ошибке через значение и завершает программу.
Environment.Exit( value );
РЕДАКТИРОВАТЬ : обратите внимание, контекст для моего оператора находился в пределах Main
для консольной программы. Библиотеки и другие методы должны вызывать исключения или возвращать значения ошибок. Только ваша основная процедура должна вызывать Exit
. Извините, если это было непонятно.
Вы можете использовать Environment.Exit ()
для завершения и возврата целочисленного кода в ОС. В качестве альтернативы вы можете установить Environment.ExitCode
, и этот код будет возвращаться в ОС всякий раз, когда ваша программа завершится нормально.
В качестве возвращаемого типа можно использовать либо int , либо void . Таким образом, просто измените его и верните значение, как в C ++.
Может быть, по умолчанию он недействителен, чтобы не озадачить новичков.
Это не неявный void. Вы не можете просто объявить main(String[] args) и заставить ее компилироваться как функцию void. Проекты по умолчанию объявляют main() как void, потому что в проектах по умолчанию нет ничего полезного, что можно было бы вернуть из main.
Стоит также отметить, что C# - это не C или C++. Некоторый синтаксис одинаков, но различия гораздо шире.
Причины, по которым разработчики C# решили объявить Main как void, я назвать не могу. Что касается возврата значений в ОС по завершении работы приложения, вы можете использовать следующее:
System.Environment.ExitCode = 1; // Or whatever number other than 0 for errors.
Вы можете изменить возвращаемый тип Main без каких-либо проблем.
Помните, что вокруг вашей программы есть еще одна "коробка" - CLR. Он будет возвращать коды ошибок, когда ваш код выбросит необработанное исключение.