C# 프로그램 내부(Visual C#)
업데이트: 2007년 11월
C# 코드의 각 줄을 차례대로 처리하는 전통적인 "Hello World!" 프로그램을 통해 C# 프로그램의 작동 방식을 이해할 수 있습니다. 이 프로그램의 사용자 지정 버전을 만들려는 경우 유사한 C# 응용 프로그램 작성, 빌드 및 실행에 대한 단계별 지침을 보려면 방법: C# 콘솔 응용 프로그램 만들기 항목을 참조하십시오.
Hello World(C# 스타일)
C# 언어에서는 클래스를 사용하여 코드를 구성하고 패키지합니다. 실제로 "Hello World!"와 같은 짧은 프로그램의 경우에도 실행 가능한 모든 C# 코드를 클래스에 포함해야 합니다. 아래에는 콘솔 창에 "Hello World!"를 표시하는 완전한 프로그램이 있습니다.
// A Hello World! program in C#
using System;
namespace HelloWorld
{
class Hello
{
static void Main()
{
System.Console.WriteLine("Hello World!");
// Keep the console window open in debug mode.
System.Console.WriteLine("Press any key to exit.");
System.Console.ReadKey();
}
}
}
using 지시문 및 네임스페이스
Visual C# Express Edition을 사용하여 콘솔 응용 프로그램을 만들 때 코드 편집기의 첫 줄에는 여러 .NET Framework 네임스페이스를 나열하는 using 지시문이 포함됩니다. 네임스페이스는 범위를 제한하고 다른 클래스 및 구조체와 이름이 충돌하지 않도록 클래스와 구조체를 하나로 묶는 방법입니다. Visual C# Express를 사용하여 프로그램을 만들면 네임스페이스가 자동으로 만들어집니다. 프로그램에서 다른 네임스페이스에 있는 클래스를 사용하려면 using 지시문을 사용하여 네임스페이스를 지정해야 합니다. 새 응용 프로그램을 만들 때 가장 자주 사용되는 .NET Framework 네임스페이스가 기본적으로 표시됩니다. 클래스 라이브러리의 다른 네임스페이스에 있는 클래스를 사용하려면 소스 파일에 해당 네임스페이스에 대한 using 지시문을 추가해야 합니다. 네임스페이스에 대한 자세한 내용은 네임스페이스(Visual C# Express)를 참조하십시오.
현재 using 지시문에 나열된 네임스페이스에서 찾을 수 없는 클래스 또는 구조체가 선언되어 있으면 코드 편집기에서는 클래스 또는 구조체가 포함된 네임스페이스를 제시합니다.
주석
using 문을 사용한 후 다음 줄에는 주석이 포함됩니다. 주석은 프로그래머 자신과 다른 프로그래머가 참조할 메모를 포함하는 데 유용합니다.
// A Hello World! program in C#
// 문자는 행의 나머지 부분을 주석으로 변환합니다. 또한 다음 예제와 같이 /*와 */ 문자 사이에 텍스트를 배치하여 텍스트 블록을 주석으로 만들 수 있습니다.
/* A "Hello World!" program in C#.
This program displays the string "Hello World!" on the screen. */
또한 서식 옵션을 사용하여 코드를 자동으로 주석으로 처리할 수 있습니다. 자세한 내용은 방법: 코드 줄 주석 처리(C# Express)를 참조하십시오.
클래스
C# 언어에서는 클래스를 사용하여 코드를 패키지합니다. 따라서 실행할 수 있는 모든 C# 코드는 클래스에 포함되어야 합니다. 자세한 내용은 클래스(Visual C# Express)를 참조하십시오.
Main()
- C# 프로그램에는 시작과 끝을 제어하는 Main 메서드가 있어야 합니다. Main 메서드에서는 개체를 생성하고 다른 메서드를 실행합니다. Main 메서드는 클래스 또는 구조체 내부에 있는 정적 메서드입니다. "Hello World!" 예제에서는 Program 클래스 내부에 이 메서드가 있습니다.
Main 메서드는 다음 방법 중 하나로 정의할 수 있습니다.
void를 반환합니다.
static void Main() { //... }
또는 int를 반환할 수 있습니다.
static int Main() { //... return 0; }
이 메서드는 명령줄 유틸리티에 유용한 인수를 받을 수 있습니다.
static void Main(string[] args) { //... }
-또는-
static int Main(string[] args) { //... return 0; }
Main 메서드의 매개 변수는 프로그램을 호출하는 데 사용되는 명령줄 인수를 나타내는 string 배열입니다. C++와 달리 이 배열에는 실행 파일(.exe)의 이름이 포함되지 않습니다. 자세한 내용은 Main()과 명령줄 인수(C# 프로그래밍 가이드)를 참조하십시오.
콘솔 입력 및 출력
C# 콘솔 프로그램에서는 일반적으로 .NET Framework Console 클래스에서 제공하는 입출력 서비스를 사용합니다. Console.WriteLine("Hello, World!"); 문에서는 WriteLine 메서드를 사용합니다. 이 메서드는 문자열 매개 변수를 명령줄 창에 표시한 다음 줄 바꿈을 합니다. Console 클래스의 다른 메서드는 다양한 입출력 작업에 사용됩니다. Console 클래스는 System 네임스페이스의 멤버입니다. using System; 문이 프로그램 시작 부분에 포함되어 있지 않으면 다음과 같이 System 클래스를 지정해야 합니다.
System.Console.WriteLine("Hello World!");
WriteLine 메서드는 매우 유용하므로 콘솔 응용 프로그램을 작성하는 경우 자주 사용합니다.
WriteLine은 문자열을 표시할 수 있습니다.
Console.WriteLine("Hello World!");
WriteLine은 숫자도 표시할 수 있습니다.
int x = 42;
Console.WriteLine(x);
여러 항목을 표시해야 할 경우 다음과 같이 {0}을 사용하여 첫 번째 항목을 나타내고 {1}을 사용하여 두 번째 항목을 나타내는 방식으로 각 항목을 나타냅니다.
int year = 1066;
string battle = "Battle of Hastings";
Console.WriteLine("The {0} took place in {1}.", battle, year);
출력 내용은 다음과 같습니다.
The Battle of Hastings took place in 1066.