C# 6.0에서는 정적 멤버를 클래스명 없이 직접 사용할 수 있는 기능이 추가되었습니다. 이 기능은 using static 키워드를 사용하여 구현됩니다.
예제1
using static 키워드를 사용하면, 해당 파일 내에서는 지정된 클래스의 모든 정적 멤버를 클래스명 없이 사용할 수 있습니다. 예를 들어, 다음과 같이 코드를 작성하면 됩니다.
using static System.Console;
namespace CS6
{
    class Program
    {
        static void Main(string[] args)
        {
            // Console. 생략 가능
            WriteLine("csharpstudy.com");
            // Math. 생략 가능
            int x = Random();
            float y = Sqrt(100);
            // DateTime. 생략 가능
            DateTime now = Now();
        }
    }
}이 코드에서는 using static 키워드를 사용하여 System.Console, System.Math, System.DateTime 클래스의 모든 정적 멤버를 클래
스명 없이 사용할 수 있습니다. 따라서 WriteLine(), Random(), Sqrt(), Now() 메서드를 호출할 때 클래스명을 생략할 수 있습니다.
using static 키워드를 사용하면 코드를 보다 간결하고 직관적으로 만들 수 있습니다. 특히, 같은 클래스의 여러 정적 멤버를 사용하는 경우에는 using static 키워드를 사용하면 코드가 훨씬 더 깔끔해집니다.
예제2
다음은 using static 키워드를 사용하여 게임에서 사용할 수 있는 기능을 구현한 예제입니다.
using static System.Random;
using static System.Console;
namespace Game
{
    class Program
    {
        static void Main(string[] args)
        {
            // 플레이어의 이름을 입력받습니다.
            string name = Console.ReadLine();
            // 플레이어의 HP를 100으로 설정합니다.
            int hp = 100;
            // 게임을 시작합니다.
            while (true) {
                // 몬스터를 생성합니다.
                int monsterHp = Random(100, 200);
                // 몬스터와 플레이어가 공격을 주고받습니다.
                while (true) {
                    // 플레이어가 공격합니다.
                    int damage = Random(10, 20);
                    monsterHp -= damage;
                    // 몬스터가 죽었다면 게임을 종료합니다.
                    if (monsterHp <= 0) {
                        break;
                    }
                    // 몬스터가 공격합니다.
                    damage = Random(10, 20);
                    hp -= damage;
                    // 플레이어가 죽었다면 게임을 종료합니다.
                    if (hp <= 0) {
                        break;
                    }
                }
                // 게임의 상태를 출력합니다.
                WriteLine($"{name}의 HP: {hp}");
                WriteLine($"몬스터의 HP: {monsterHp}");
            }
        }
    }
}이 코드에서는 using static 키워드를 사용하여 Random 클래스의 Random() 메서드와 Console 클래스의 WriteLine() 메서드를 클래스명 없이 사용할 수 있습니다. 따라서 Random() 메서드를 호출할 때 Random.Random() 대신 Random()을 사용할 수 있고, WriteLine() 메서드를 호출할 때 Console.WriteLine() 대신 WriteLine()을 사용할 수 있습니다.
이 예제는 단순한 예제이지만, using static 키워드를 사용하여 코드를 보다 간결하고 직관적으로 만들 수 있는 방법을 보여줍니다.
마무리
C# 6.0의 using static 키워드는 정적 멤버를 보다 간결하고 직관적으로 사용할 수 있는 유용한 기능입니다. 개발자는 이 기능을 사용하여 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.
'C#' 카테고리의 다른 글
| C# Linked List (0) | 2023.12.02 | 
|---|---|
| C# 11.0의 required modifier (0) | 2023.11.10 | 
| C# 6.0의 catch/finally 블럭에서 await 사용 (0) | 2023.11.08 | 
| Microsoft.CodeAnalysis.LanguageServer client: couldn't create connection to server. (1) | 2023.10.27 | 
| C#의 정적 타입 정보 연산자 (0) | 2023.10.26 |