Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 사용할 수 있는 Main() 메서드의 유효한 변형 완벽 정리

C# 프로그램에서 Main() 메서드는 모든 프로그램의 진입점(Entry Point) 역할을 합니다. 즉, 프로그램이 실행될 때 가장 먼저 호출되는 메서드로, 클래스가 실행될 때 어떤 동작을 수행할지 정의하는 곳입니다.

그렇다면 C#에서 유효한 Main() 메서드의 기본 형태는 무엇일까요? 가장 대표적인 형식은 다음과 같습니다.

static void Main(string[] args)

Main() 메서드 구성 요소 살펴보기

위 코드를 구성하는 각 요소의 의미는 다음과 같습니다.

  • static — static 멤버는 객체(인스턴스)를 생성하지 않고도 접근할 수 있습니다. 프로그램 시작 시점에는 아직 객체가 없기 때문에 Main()은 반드시 static으로 선언해야 합니다.
  • void — 메서드의 반환 타입을 의미합니다. void는 아무 값도 반환하지 않는다는 뜻입니다.
  • Main — 모든 C# 프로그램의 진입점입니다. 프로그램 실행은 바로 이 지점에서 시작됩니다.
  • string[] args — 명령줄 인수(Command Line Arguments)를 받기 위한 매개변수입니다. 프로그램 실행 시 외부에서 전달된 문자열 배열을 담습니다.

Main() 메서드 예제

다음은 Main() 메서드를 활용한 간단한 C# 프로그램 예제입니다.

using System;

namespace Program {
    public class Demo {
        public static void Main(string[] args) {
            Console.WriteLine("Welcome!");
            Console.ReadKey();
        }
    }
}

실행 결과

Welcome!

참고: 그 외의 유효한 Main() 변형들

C#에서는 상황에 따라 다양한 형태의 Main() 메서드를 사용할 수 있습니다. 대표적인 변형은 다음과 같습니다.

  • static int Main(string[] args)
    — 작업 결과를 나타내는 정수 코드를 운영체제에 반환해야 할 때 사용합니다.
  • static void Main()
    — 명령줄 인수가 필요 없는 경우 매개변수를 생략할 수 있습니다.
  • static async Task Main(string[] args)
    — 비동기 프로그래밍을 활용할 때 사용하며, C# 7.1 이상에서 지원됩니다.

단, 하나의 프로그램 내에 여러 개의 Main() 메서드가 존재할 경우 컴파일러 오류가 발생할 수 있으므로 주의해야 하며, 필요하다면 컴파일 옵션(-main)으로 진입점을 직접 지정할 수 있습니다.