inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

static의 정체

id 활용에 대해서 궁금합니다.

해결된 질문

260

boxman

작성한 질문수 32

0

class Player

    {

        static private int counter = 1;

        private int id;

        private bool isDespose = false;

        public int GetCounter() { return counter; }

        public int GetId() { return id; }

        public Player()

        {

            id = counter;

            counter++;

        }

 

        ~Player()

        {

            if (!isDespose)

                Dispose();

        }

 

        public void Dispose()

        {

            isDespose = true;

            Console.WriteLine("{0}ID 삭제 Ok....", id);

            GC.SuppressFinalize(this);

        }

    }

    class TestSample

    {

        static void Main(string[] args)

        {

            Player player1 = new Player();

            Console.WriteLine(player1.GetId()); 

            Player player2 = new Player();

            Console.WriteLine(player2.GetId());

            Player player3 = new Player();

            Console.WriteLine(player3.GetId());

            Player player4 = new Player();

            Console.WriteLine(player4.GetId());

            player4.Dispose();

            Player player5 = new Player();

            Console.WriteLine(player5.GetId());

            Console.WriteLine(player4.GetId());

 

            for(int i=0; i<5;i++)

                Console.WriteLine(i);

        }

    }

만일 객체를 제거하면 어떤가 궁금해서 소멸자로 지워보았습니다. 이럴 경우에 4번째를 제거해도 ID는 4로 남아있습니다.

그렇다고 당기면 다른 계정의 ID들이 바뀌니 안될것같은데 이런 제거하는 계정은 어떻게 처리를하나요~?

C#

답변 1

0

Rookiss

ID를 굳이 회수할 필요 없습니다. 
그냥 +1씩 계속 늘리면 그만이기 때문이죠.
[그럼 아이디가 언젠가 고갈되지 않을까?] 싶으시겠지만
64비트 정수로 표현할 수 있는 숫자의 범위는 상상을 초월하고
100년 게임을 운영해도 0.00000.....1%도 사용하지 못합니다.

그리고 오브젝트 구별을 위한 임시 ID가 아닌, 
계정 별로 고정인 ID의 경우 서버나 클라에서 발급하는게 아니라
DB쪽에서 발급하는데 이 때도 비슷하게 숫자는 계속 증가를 (auto increment) 시킵니다.

Generic에 대한 질문 있습니다.

0

113

2

2022 버전에 커뮤니티 버전이 없는데 2026 버전으로 해도 무관?

0

226

2

다형성 캐시 문제

0

136

3

.

0

77

1

프로퍼티 강의 질문 있습니다.

0

85

1

이후 커리 질문

0

91

1

static

0

101

2

강의에는 새로운 클래스 파일을 생성하면...

0

80

1

생성자의 이름 선언

0

68

1

9:03 Divide(10 , 3) 부분 질문입니다

0

93

1

깃허브 관련 질문 있습니다.

0

248

1

비쥬얼 스튜디오 업데이트가 된건가요..? 매개변수 오류 관련 질문

0

258

1

C# 시리즈 || C++ 시리즈 자료구조 강의에 대한 질문입니다!

0

311

2

Activator 질문있습니다

0

343

1

이넘 타임 선언 질문

0

358

1

Sort 오름차순, 내림차순

0

332

1

질문 있습니다.

0

254

1

팩토리얼 문제

0

277

1

Sort함수 질문있습니다.

0

271

1

다형성 함수 질문 있습니다.

0

230

1

질문이 있습니다.

0

236

1

섹션2 연습문제 질문입니다.

0

222

1

안녕하세요~서버에 대해 질문이 있습니다.

1

288

1

텍스트 색깔이 제 편집기와 달라서 수강에 어려움이 있습니다ㅜㅜ

0

401

1