입문자를 위한 맛보기
아래의 프로그램은 “hoho"라는 메시지를 출력하는 아주 간단한 콘솔응용 예제 프로그램이다. 예제 프로그램에서 보는 바와 같이 시작점, 즉 main 메소드의 형식이 C++의 그 것과 약간의 차이점이 있다. C#에는 전역함수가 없기 때문에 main 함수가 사용자 정의 클래스 (여기서는 Program) 의 메소드로 선언이 된다. 또한 C#에서는 C++ 달리 헤더 파일 (*.h)이 없으며 이에 따라 #include 컴파일 지시자도 없다.
C#에서는 관련있는 클래스들을 계층적으로 구성하기 위해 이름공간 (Namespace)을 사용하는데, 아래의 예에서는 System, System.Collections.Generic, System.Text 이름공간을 사용한다. 따라서, 이 세 이름공간에 정의된 클래스는 이름공간을 생략하여 사용할 수 있다. 그래서 아래 예에서는 System.Console.WriteLine("hoho") 대신에 Console.WriteLine("hoho")이라고 표기하였다. 그리고 여러분의 작성한 클래스에 대해서도 이름공간을 지정하여 관련된 클래스를 같은 어셈블리 파일에 묶어 둘 수 있다. 아래의 예에서는 Program 클래스를 ConsoleApplication1 이름공간으로 지정하였다.
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("hoho");
}
}
}
C#과 C++ 사이에는 이런 일반적인 차이점 외에도 많은 차이점들이 존재한다. 이러한 부분들을 살펴보기에 앞서 앞의 예제를 간단히 실행시켜 보도록 하자. 먼저 비쥬얼 스튜디오를 수행시켜 콘솔 응용프로그램 형식의 새 프로젝트를 생성한 후 위의 코드를 입력하기 바란다. C# 소스 파일에서 클래스를 사용하려면, C# 컴파일러에게 해당 클래스의 위치를 알려 주어야 하는데 클래스는 어셈블리 안에 존재하기 때문에 그 어셈블리 파일을 컴파일러에게 지정해 주어야 필요가 있다. 이는 커맨드 라인에서 /r:<어셈블리명> 옵션을 사용하거나 비쥬얼 스튜디오 개발환경(IDE)에서 프로젝트에 레퍼런스를 추가함으로써 이루어진다. 비쥬얼 스튜디오 IDE에서 콘솔 응용프로그램을 생성하면 기본적으로 System, System.Collections.Generic, System.Text 이름공간을 사용하는 것으로 되며 이들에 대한 레퍼런스가 추가된다. 따라서 위의 예제 프로그램을 수행시킬 경우는 별도로 레퍼런스를 추가할 필요가 없다. 앞으로, 위의 세 이름공간 외의 클래스를 사용할 경우는 먼저 using 문을 사용하여 사용하고자 하는 클래스의 이름공간을 지정해 주고 그 클래스가 포함되어 있는 어셈블리 파일을 레퍼런스에 추가해 주어야 함을 명심하기 바란다. 참고로, 클래스를 담고 있는 이름공간과 그 이름공간에 해당하는 어셈블리 파일과는 상관관계가 있다. 예를 들어, System.Drawing 이름공간에 있는 클래스들은 System.Drawing.dll 어셈블리 안에서 찾을 수 있다.