소스 파일 규칙(C# 및 Java)

업데이트: 2007년 11월

C# 클래스가 포함된 파일에 대한 명명 규칙은 Java의 경우와 약간 다릅니다. Java에서는 모든 소스 파일에 .java 확장자가 사용됩니다. 각 소스 파일에는 최상위 공용 클래스 선언 하나가 포함되고 클래스 이름은 파일 이름과 일치해야 합니다. 즉, 공용 범위로 선언된 Customer라는 클래스는 Customer.java라는 이름의 소스 파일에 정의해야 합니다.

C# 소스 코드에는 .cs 확장자가 지정됩니다. Java와 달리 소스 파일에는 최상위 공용 클래스 선언이 여러 개 포함될 수 있고 파일 이름은 클래스의 이름과 일치하지 않아도 됩니다.

최상위 선언

Java와 C# 모두에서 소스 코드는 일정한 순서의 몇 가지 최상위 선언으로 시작합니다. Java 프로그램에서 만든 선언과 C# 프로그램에서 만든 선언 사이에는 단지 몇 가지 차이만 있을 뿐입니다.

Java의 최상위 선언

Java에서는 package 키워드를 사용하여 클래스를 함께 그룹화할 수 있습니다. 패키지된 클래스에서는 소스 파일에서 실행 가능한 첫 번째 줄에 package 키워드를 사용해야 합니다. 다음과 같이 다른 패키지의 클래스에 액세스해야 하는 모든 import 문이 그 뒤에 오고 클래스 선언이 그 뒤를 따릅니다.

package Acme;
import java.io.*;
class Customer
{
    ...
}

C#의 최상위 선언

C#에서는 네임스페이스라는 개념을 사용하여 namespace 키워드를 통해 논리적으로 관련된 클래스를 그룹화합니다. 네임스페이스의 동작은 Java 패키지의 경우와 비슷하고 이름이 동일한 클래스가 서로 다른 두 네임스페이스 안에 나타날 수 있습니다. 현재 네임스페이스 외부의 네임스페이스에 정의된 클래스에 액세스하려면 다음과 같이 using 지시문 뒤에 네임스페이스 이름을 사용해야 합니다.

using System.IO;

namespace Acme 
{
    class Customer
    {
        // ...
    }
}

using 지시문을 네임스페이스 선언 안쪽에 배치할 수 있습니다. 이 경우 가져온 네임스페이스가 포함하는 네임스페이스의 일부를 구성합니다.

Java에서는 동일한 소스 파일에서 패키지를 여러 개 사용할 수 없습니다. 그러나 C#에서는 다음과 같이 .cs 파일 하나에 여러 네임스페이스를 사용할 수 있습니다.

namespace AcmeAccounting
{
    public class GetDetails
    {
        // ...
    }
}

namespace AcmeFinance
{
    public class ShowDetails
    {
        // ...
    }
}

정규화된 이름 및 네임스페이스 별칭

Java와 마찬가지로 이전 예제에서처럼 DataSet 또는 AcmeAccounting.GetDetails 같은 클래스의 정규화된 이름을 제공하여 해당 네임스페이스에 대한 using 참조를 사용하지 않고도 사용자 정의 네임스페이스나 .NET Framework 모두에서 클래스에 액세스할 수 있습니다.

정규화된 이름은 너무 길거나 다루기 불편할 수 있습니다. 이 경우 using 키워드를 사용하여 약식 이름이나 별칭을 지정하면 코드의 가독성을 높일 수 있습니다.

다음 코드에서는 가상의 기업에서 작성한 코드를 참조하기 위한 별칭을 만듭니다.

using DataTier = Acme.SQLCode.Client;

class OutputSales
{
    static void Main()
    {
        int sales = DataTier.GetSales("January");
        System.Console.WriteLine("January's Sales: {0}", sales);
    }
}

형식 문자열에 {x}가 있는 WriteLine의 구문에서 x는 해당 위치에 삽입할 값의 인수 목록 위치를 지정합니다. GetSales 메서드가 500을 반환한 경우 응용 프로그램의 출력은 다음과 같습니다.

January's Sales: 500

지시문 전처리

C나 C++와 마찬가지로 C#에서 전처리 지시문을 사용하면 소스 코드의 특정 부분을 조건적으로 건너 뛸 수 있도록 만들어 오류나 경고 조건을 보고하고 소스 코드의 특정 부분을 나타낼 수 있습니다. "전처리 지시문"이란 용어는 C 및 C++ 프로그래밍 언어와의 일관성을 위해서만 사용합니다. C#에는 별도의 전처리 단계가 없습니다. 자세한 내용은 C# 전처리기 지시문을 참조하십시오.

참고 항목

개념

C# 프로그래밍 가이드

기타 리소스

Java 개발자를 위한 C# 프로그래밍 언어