using 지시문(C# 참조)using Directive (C# Reference)

using 지시문에는 다음 세 가지 용도가 있습니다.The using directive has three uses:

  • 네임스페이스에서 형식 사용을 한정할 필요가 없도록 해당 네임스페이스에서 형식 사용을 허용합니다.To allow the use of types in a namespace so that you do not have to qualify the use of a type in that namespace:

    using System.Text;  
    
  • 형식 이름을 사용하여 액세스를 한정할 필요 없이 형식의 정적 멤버 및 중첩 형식에 액세스하도록 허용합니다.To allow you to access static members and nested types of a type without having to qualify the access with the type name.

    using static System.Math;  
    

    자세한 내용은 using 정적 지시문을 참조하세요.For more information, see the using static directive.

  • 네임스페이스 또는 형식에 대한 별칭을 만듭니다.To create an alias for a namespace or a type. 이를 using 별칭 지시문이라고 합니다.This is called a using alias directive.

    using Project = PC.MyCompany.Project;  
    

using 키워드는 파일 및 글꼴과 같은 IDisposable 개체가 제대로 처리될 수 있게 도와주는 using 문을 만드는 데도 사용됩니다.The using keyword is also used to create using statements, which help ensure that IDisposable objects such as files and fonts are handled correctly. 자세한 내용은 using 문을 참조하세요.See using Statement for more information.

정적 형식 사용Using Static Type

형식 이름을 사용하여 액세스를 한정할 필요 없이 형식의 정적 멤버에 액세스할 수 있습니다.You can access static members of a type without having to qualify the access with the type name:

using static System.Console;   
using static System.Math;  
class Program   
{   
    static void Main()   
    {   
        WriteLine(Sqrt(3*3 + 4*4));   
    }   
}  

설명Remarks

using 지시문의 범위는 지시문이 나타내는 파일로 제한됩니다.The scope of a using directive is limited to the file in which it appears.

using 지시문이 나타날 수 있습니다.The using directive can appear:

  • 모든 네임스페이스 또는 형식 정의 전에 소스 파일을 시작합니다.At the beginning of a source code file, before any namespace or type definitions.
  • 모든 네임스페이스에 있지만 이 네임스페이스에 선언된 네임스페이스 또는 형식 앞에 있어야 합니다.In any namespace, but before any namespace or types declared in this namespace.

이렇게 하지 않으면 컴파일러 오류 CS1529가 생성됩니다.Otherwise, compiler error CS1529 is generated.

using 별칭 지시문을 만들면 네임스페이스 또는 형식에 대한 식별자를 더 쉽게 한정할 수 있습니다.Create a using alias directive to make it easier to qualify an identifier to a namespace or type. 모든 using 지시문에서 앞에 오는 using 지시문에 관계없이 정규화된 네임스페이스 또는 형식을 사용해야 합니다.In any using directive, the fully-qualified namespace or type must be used regardless of the using directives that come before it. using 별칭은 using 지시문 선언에 사용할 수 없습니다.No using alias can be used in the declaration of a using directive. 예를 들어, 다음은 컴파일러 오류를 생성합니다.For example, the following generates a compiler error:

using s = System.Text;
using s.RegularExpressions; 

using 지시문을 만들어서 네임스페이스를 지정할 필요 없이 네임스페이스에서 이 형식을 사용합니다.Create a using directive to use the types in a namespace without having to specify the namespace. using 지시문은 지정한 네임스페이스에 중첩된 모든 네임스페이스에 대한 액세스 권한을 제공하지 않습니다.A using directive does not give you access to any namespaces that are nested in the namespace you specify.

네임스페이스는 두 가지 범주인 사용자 정의 및 시스템 정의로 구분됩니다.Namespaces come in two categories: user-defined and system-defined. 사용자 정의 네임스페이스는 코드에서 정의된 네임스페이스입니다.User-defined namespaces are namespaces defined in your code. 시스템 정의 네임스페이스 목록은 .NET API 브라우저를 참조하세요.For a list of the system-defined namespaces, see .NET API Browser.

다른 어셈블리의 메서드를 참조하는 예제는 명령줄을 사용하여 어셈블리 만들기 및 사용을 참조하세요.For examples on referencing methods in other assemblies, see Create and Use Assemblies Using the Command Line.

예제 1Example 1

다음 예제에서는 using 네임스페이스에 대한 별칭을 정의 및 사용하는 방법을 보여 줍니다.The following example shows how to define and use a using alias for a namespace:

namespace PC
{
    // Define an alias for the nested namespace.
    using Project = PC.MyCompany.Project;
    class A
    {
        void M()
        {
            // Use the alias
            Project.MyClass mc = new Project.MyClass();
        }
    }
    namespace MyCompany
    {
        namespace Project
        {
            public class MyClass { }
        }
    }
}

using alias 지시문의 오른쪽에는 공개 제네릭 형식이 포함될 수 없습니다.A using alias directive cannot have an open generic type on the right hand side. 예를 들어 List<T>에 대해서는 using 별칭을 만들 수 없지만 List<int>에 대해서는 만들 수 있습니다.For example, you cannot create a using alias for a List<T>, but you can create one for a List<int>.

예제 2Example 2

다음 예제에서는 클래스에 대한 using 지시문 및 using 별칭을 정의하는 방법을 보여 줍니다.The following example shows how to define a using directive and a using alias for a class:

using System;

// Using alias directive for a class.
using AliasToMyClass = NameSpace1.MyClass;

// Using alias directive for a generic class.
using UsingAlias = NameSpace2.MyClass<int>;

namespace NameSpace1
{
    public class MyClass
    {
        public override string ToString()
        {
            return "You are in NameSpace1.MyClass.";
        }
    }

}

namespace NameSpace2
{
    class MyClass<T>
    {
        public override string ToString()
        {
            return "You are in NameSpace2.MyClass.";
        }
    }
}

namespace NameSpace3
{
    // Using directive:
    using NameSpace1;
    // Using directive:
    using NameSpace2;

    class MainClass
    {
        static void Main()
        {
            AliasToMyClass instance1 = new AliasToMyClass();
            Console.WriteLine(instance1);

            UsingAlias instance2 = new UsingAlias();
            Console.WriteLine(instance2);

        }
    }
}
// Output: 
//    You are in NameSpace1.MyClass.
//    You are in NameSpace2.MyClass.

C# 언어 사양C# Language Specification

자세한 내용은 C# 언어 사양을 참조하세요.For more information, see the C# Language Specification. C# 언어 사양은 C# 구문 및 사용법에 대한 신뢰할 수 있는 소스입니다.The language specification is the definitive source for C# syntax and usage.

참고 항목See Also