I don’t understand why C#’s Main function is void by default (in a console project for example). In C and C++ the standard clearly says main must return int, and using a return value makes sense because we can check that return value from an external program and see if the C/C++ application finished successfully or encountered an error.
So my questions are:
- Why does Visual Studio declare
Mainas void? - What’s the best way of returning a value to the OS once a C# console application has finished executing?
In C#, you can use, see MSDN :
You can also return a (int) value in 2 ways.
In a Console application I would use
int Main() { ...; return 2; }In a WinForms/WPF/… app, in the rare situation it needs a return value, I would use
Environment.ExitCode = 1;orEnvironment.Exit(1);