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) { }
public 은 일반적이지만 필수는 아닙니다.
async 및 Task, Task<int> 반환 형식을 추가하면 콘솔 애플리케이션을 시작해야 하고,
비동기 작업을 Main에서 await해야 하는 경우에 프로그램 코드가 간소화됩니다.
static async Task<int> Main(string[] args)
{
return await AsyncConsoleWork();
}
Task 또는 Task<int>를 반환하는 경우, 아래의 코드와 동일한 역할을 합니다.
컴파일러는 애플리케이션 코드에서 선언된 진입점 메서드를 호출하는 새 진입점을
내부적으로 생성하는 것과 같습니다.
public static void Main()
{
AsyncConsoleWork().GetAwaiter().GetResult();
}
private static async Task<int> AsyncConsoleWork()
{
// Main body here
return 0;
}