The Main method is the entry point of a C# application. When the application is started, the Main method is the first method that is invoked.
There can only be one entry point in a C# program. If you have more than one class that has a Main method, you must compile your program with the StartupObject compiler option to specify which Main method to use as the entry point.
Starting in C# 9, you don’t have to explicitly include a Main method in a console application project.
Instead, you can use the top-level statements feature to minimize the code you have to write. In this case, the compiler generates a class and Main method entry point for the application.
The following is a list of valid Main signatures:
public static void Main() { }
public static int Main() { }
public static void Main(string[] args) { }
public static int Main(string[] args) { }
public static async Task Main() { }
public static async Task<int> Main() { }
public static async Task Main(string[] args) { }
public static async Task<int> Main(string[] args) { }
Code Sample:
using System;
using System.Threading.Tasks;
class Program
{
static async Task<int> Main(string[] args)
{
return await AsyncTestMethod();
}
private static async Task<int> AsyncTestMethod()
{
Console.WriteLine("Hello async Main method.");
return 0;
}
}