C#

C# 6.0 정적 멤버 직접 사용

코샵 2023. 11. 9. 10:24
반응형

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 키워드는 정적 멤버를 보다 간결하고 직관적으로 사용할 있는 유용한 기능입니다. 개발자는 기능을 사용하여 코드의 가독성과 유지보수성을 향상시킬 있습니다.