Main 메서드
프로그램 진입점
모든 C# 프로그램은 반드시 클래스를 하나 포함해야 하며, 해당 클래스 안에 Main이라는 이름의 메서드가 존재해야 합니다. 앞서 보여준 예시 코드에서 이 메서드는 Program 클래스 안에 정의되어 있습니다.
하지만 최신 버전 C#에서는 Main 함수를 따로 작성하지 않아도 되며, 최상단에 적는 코드가 기본적으로 Main 본문으로 처리됩니다.
- C# 프로그램 실행은
Main메서드 내 첫 번째 코드 줄부터 시작합니다. - 메서드 이름
Main의 첫 글자 M은 반드시 대문자로 써야 합니다.
Main 메서드 가장 간결한 작성 방식:
static void Main( )
{
코드 구문
}Code language: JavaScript (javascript)
Main 메서드가 없거나 여러 개 존재하면 안 되고 딱 하나만 있어야 합니다.
실습 예시로 VS2022를 이용해 오직 Windows에서만 구동하는 .NET Framework 프로젝트를 생성하겠습니다.

아래 콘솔 앱 템플릿을 선택하세요.

프레임워크 버전은 최신 .NET 4.8.1로 선택합니다.
생성 후 기본 Program.cs 내용은 다음과 같습니다
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HelloDemo
{
internal class Program
{
static void Main(string[] args)
{
}
}
}
Code language: PHP (php)
맨 위 줄들은 여러 네임스페이스를 불러오는 코드로, 이 네임스페이스 안에 내장된 .NET 클래스를 사용할 수 있게 해줍니다.
Main 메서드 안에 한 줄 코드를 입력합니다:
Console.WriteLine(“hello foxdevelop.com”);

VS 상단 초록색 삼각형 Start 버튼을 클릭해 프로그램을 실행합니다.

프로그램은 기본적으로 Main 안 첫 번째 코드를 실행합니다.
Main 메서드를 하나 더 복제하면 즉시 오류가 표시됩니다

원인은 동일한 네임스페이스 안에 같은 이름의 함수를 여러 개 둘 수 없기 때문입니다. 그래서 서로 다른 네임스페이스를 두 개 만들어보겠습니다.

이제 빨간 물결 밑줄은 사라져 정상으로 보이지만 빌드를 실행하면
Start 클릭

컴파일 오류가 발생하며 하단 Error List 창에 오류 내용이 표시됩니다

화면에 Error List 창이 보이지 않으면 상단 메뉴바에서 활성화할 수 있습니다.

오류 목록 창에서 어느 부분에 문제가 생겼는지 알려줍니다

공백 문자 (Whitespace)
코드의 공백 문자란 화면에 보이는 출력을 만들지 않는 문자를 의미합니다. 컴파일러는 소스 코드 내 공백을 무시하며, 개발자는 가독성과 코드 구조 정리를 위해 공백을 사용합니다.
자주 쓰이는 공백 문자 종류:
- 스페이스 (Space)
- 탭 (Tab)
- 개행 문자 (New line)
- 캐리지 리턴 (Carriage return)
예시: 아래 두 코드는 시각적 형식이 전혀 다르지만 컴파일러는 동일하게 처리합니다
// 정렬된 버전
Main()
{
Console.WriteLine("Hi, there!");
}
// 압축해서 적은 버전
Main(){Console.WriteLine("Hi, there!");}Code language: JavaScript (javascript)
아래는 일반적인 형식의 Main 메서드입니다
static void Main(string[] args)
{
Console.WriteLine("hello foxdevelop.com");
}Code language: JavaScript (javascript)
모든 공백을 지우고 빽빽하게 한 줄로 만들어도 프로그램은 정상 컴파일되며 컴파일러 입장에서 차이가 없습니다.
static void Main(string[] args){Console.WriteLine("hello foxdevelop.com");}Code language: JavaScript (javascript)

구문 (Statements)
C# 구문 문법은 C, C++와 유사합니다. 이 절에서는 구문 공통 규칙을 설명하며 각종 세부 구문은 뒤에서 다룹니다.
구문은 한 줄 소스 명령으로 데이터 타입을 정의하거나 프로그램에 특정 동작을 실행하도록 지시합니다.
단순 구문은 반드시 세미콜론 ;으로 끝나야 합니다. 아래 연속된 두 단순 구문 예시: 첫 줄은 정수 변수 var1을 선언하고 5를 할당, 두 번째 줄은 변수 값을 콘솔 창에 출력합니다.
int var1 = 5;
System.Console.WriteLine("The value of var1 is {0},welcome to foxdevelop.com", var1);Code language: JavaScript (javascript)

위 Main 예시에는 두 개 구문이 포함되고 앞선 예제들은 한 개만 사용했습니다. 첫 코드는 정수형 변수 var1을 만들어 5를 저장하고 두 번째 코드는 텍스트를 콘솔에 출력합니다. 텍스트 안 {0}은 자리 표시자로 뒤쪽 var1 값으로 채워집니다.
코드 블록 (Blocks)
코드 블록은 한 쌍의 중괄호로 0개 이상의 구문을 감싼 것으로, 문법상 하나의 단일 구문으로 취급됩니다.
위 예시 두 구문을 중괄호로 감싸면 완전한 코드 블록이 됩니다:
{
int var1 = 5;
System.Console.WriteLine("The value of var1 is {0},welcome to foxdevelop.com", var1);
}Code language: JavaScript (javascript)

코드 블록 핵심 규칙:
- 문법상 한 구문만 허용하지만 여러 동작이 필요할 때 모든 코드를 블록으로 감쌉니다.
- 일부 문법 구조는 코드 블록 사용을 강제하며 단독 구문으로 대체할 수 없습니다.
- 단순 구문 끝에는 세미콜론이 필요하지만 코드 블록 닫는 괄호 뒤에는 세미콜론을 쓰지 않습니다. 컴파일러가
}뒤 세미콜론을 빈 구문으로 인식하지만 좋지 않은 작성 방식입니다.
그림 설명:
{
int var2 = 5; // 개별 구문은 끝에 세미콜론
System.Console.WriteLine("The value of var1 is {0}", var1); // 개별 구문은 끝에 세미콜론
} // 닫는 중괄호 뒤 세미콜론 불필요Code language: JavaScript (javascript)

일반 개별 구문은 끝에 ;을 붙여야 합니다

아래 완성 예시는 복사해서 바로 실행할 수 있습니다
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HelloDemo
{
internal class Program
{
static void Main(string[] args)
{
{
int var1 = 5;
System.Console.WriteLine("The value of var1 is {0},welcome to foxdevelop.com", var1);
}; ; ; ;
}
}
}
Code language: PHP (php)