NeuroWhAI의 잡블로그

[C#] using static 지시문 (C# 6) 본문

개발 및 공부/언어

[C#] using static 지시문 (C# 6)

NeuroWhAI 2018. 1. 21. 16:42



'using static'은 C# 6에서 도입된 기능으로서
정적 멤버를 '클래스.정적_멤버' 이런식으로 쓰던것을
'using static 클래스;'를 통해 '정적_멤버'를 바로 쓸 수 있게 해줍니다.

공식 문서의 예를 들자면 기존에 아래와 같은 코드가 있었다고 합시다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System;
 
public class Circle
{
   public Circle(double radius)
   {
      Radius = radius;
   }
 
   public double Radius { get; set; }
 
   public double Diameter
   {
      get { return 2 * Radius; }
   }
 
   public double Circumference
   {
      get { return 2 * Radius * Math.PI; }      
   }
 
   public double Area
   {
      get { return Math.PI * Math.Pow(Radius, 2); }
   }
}

보시다시피 Math.*가 상당히 많이 반복되는것을 알 수 있습니다.
이걸 'using static System.Math;'를 통해 아래처럼 바꿀 수 있다는 말입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using System;
using static System.Math;
 
public class Circle
{
   public Circle(double radius)
   {
      Radius = radius;
   }
 
   public double Radius { get; set; }
 
   public double Diameter
   {
      get { return 2 * Radius; }
   }
 
   public double Circumference
   {
      get { return 2 * Radius * PI; }      
   }
 
   public double Area
   {
      get { return PI * Pow(Radius, 2); }
   }
}
cs

이렇게요.

다만 남용하면 이름 오염이 발생할 수 있으니 정말 필요하다 싶을때만 쓰는게 좋을것 같습니다.



Comments