Требуемая точка входа на самом деле:
static void Main(string[] args); // note capitalization and arguments
Причина, по которой Main
должен быть статическим, заключается в том, что нестатические объекты должны создаваться перед вызовом любых методов для них. Поскольку Main
является точкой входа в программу, кто будет вызывать ее конструктор?
(Да, CLR может потребовать, чтобы класс с Main
содержал конструктор без параметров по умолчанию, и вызывал этот конструктор CLR при глобальном запуске. Но это дополнительная работа, и на практике проще просто потребовать, чтобы Main
быть статичным.)