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 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 별칭을 만들면 네임스페이스 또는 형식에 대한 식별자를 더 쉽게 한정할 수 있습니다.Create a using alias to make it easier to qualify an identifier to a namespace or type. using alias 지시문의 오른쪽은 지시문 앞에 나오는 using 지시문과 관계없이 항상 정규화된 형식이어야 합니다.The right side of a using alias directive must always be a fully-qualified type regardless of the using directives that come before it.

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 Framework 클래스 라이브러리 개요를 참조하세요.For a list of the system-defined namespaces, see .NET Framework Class Library Overview.

다른 어셈블리의 메서드를 참조하는 예제는 명령줄을 사용하여 어셈블리 만들기 및 사용을 참조하세요.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

C# 참조C# Reference
C# 프로그래밍 가이드C# Programming Guide
네임스페이스 사용Using Namespaces
C# 키워드C# Keywords
네임스페이스 키워드Namespace Keywords
네임스페이스Namespaces
using 문using Statement