C# using 문 마스터하기: 네임스페이스 임포트, 별칭, 정적 지시자
C# using 문 완전 정복
C# using 키워드를 활용해 네임스페이스 임포트, 별칭 생성, 정적 멤버 직접 접근하는 방법을 실전 예제로 익혀보세요.
C#에서 using 지시자는 외부 리소스(네임스페이스, 클래스 등)를 현재 스코프로 가져옵니다. 이를 통해 코드 전반에서 정규화된 이름(Fully Qualified Name)을 매번 쓰지 않아도 됩니다.
// System 네임스페이스 임포트
using System;
namespace Program {
class Program1 {
static void Main(string[] args) {
Console.WriteLine("Hello World!");
}
}
}
실행 결과
Hello World!
using System; 한 줄 덕분에 Console 클래스를 System. 접두사 없이 바로 사용할 수 있습니다.
// 정규화된 이름 사용
System.Console.WriteLine("Hello World!");
// using System 후
Console.WriteLine("Hello World!");
네임스페이스에 대한 더 자세한 내용은 C# 네임스페이스 공식 문서를 참조하세요.
using 별칭 만들기
긴 타입 이름에 짧은 별칭을 붙여 반복적인 참조를 간소화할 수 있습니다.
// System.Console을 Programiz로 별칭 지정
using Programiz = System.Console;
namespace HelloWorld {
class Program {
static void Main(string[] args) {
// 전체 타입 이름 대신 별칭 사용
Programiz.WriteLine("Hello World!");
}
}
}
실행 결과
Hello World!
별칭 Programiz는 System.Console과 동일하게 동작하지만 코드를 더 간결하게 만듭니다.
using static으로 정적 멤버 직접 접근
클래스의 정적 필드, 프로퍼티, 메서드를 using static으로 임포트하면 클래스 이름 없이 바로 호출할 수 있습니다.
예제: System.Math 정적 멤버 임포트
using System;
// Math 클래스의 정적 멤버 임포트
using static System.Math;
namespace Program {
class Program1 {
public static void Main(string[] args) {
double n = Sqrt(9); // Math.Sqrt 대신 Sqrt 직접 사용
Console.WriteLine("Square root of 9 is " + n);
}
}
}
실행 결과
Square root of 9 is 3
using static System.Math; 덕분에 Sqrt를 Math. 한정자 없이 호출했습니다.
비교: 정적 임포트 없이 사용
using System;
namespace Program {
class Program1 {
public static void Main(string[] args) {
double n = Math.Sqrt(9); // 클래스 이름 필수
Console.WriteLine("Square root of 9 is " + n);
}
}
}
실행 결과
Square root of 9 is 3
정적 지시자를 생략하면 전체 클래스 이름을 명시해야 합니다.