Существует несколько возможных сигнатур для main()
:
void main()
void main(string[] args)
void main(char[][] args)
void main(wstring[] args)
void main(wchar[][] args)
void main(dstring[] args)
void main(dchar[][] args)
int main()
int main(string[] args)
int main(char[][] args)
int main(wstring[] args)
int main(wchar[][] args)
int main(dstring[] args)
int main(dchar[][] args)
Если тип int - это тип возвращаемого значения, то он почти такой же, как в C или C ++.Возвращаемое вами значение - это то, что видит ОС / оболочка.Если выдается исключение, то выводится трассировка стека, и ОС / оболочка видит ненулевое значение.Я не знаю что это.Это может варьироваться в зависимости от типа исключения.
Если тип возвращаемого значения void, то ОС / оболочка видит 0. Если выброшено исключение, то выводится трассировка стека, а ОС видит ненулевое значение,Опять же, я не знаю, что это такое.
По сути, наличие void main позволяет вам не беспокоиться о возвращении значения в ОС / оболочку.Многие программы нисколько не заботятся о возврате успеха или неудачи в ОС / оболочке.Таким образом, с помощью void ОС / оболочка всегда получает 0, если не выдается исключение - что имеет смысл, поскольку единственная программная ошибка в этой точке - это исключение main()
.Если вы do заботитесь о возвращении успеха или неудачи в ОС / оболочку, то вы просто используете одну из версий, которая возвращает int.
Изобилие подписей из-за различных типов строк состоит в том, чтоВы можете использовать практически любой из возможных типов строк в качестве входных данных для main()
.main()
и main(string[] args)
, вероятно, наиболее часто используемые.