게임개발공부/C#공부

변수가 사용됐다? 초기화의 순서는?

JJOREG 2013. 12. 30. 01:25

빠르게 배워나가는 도중이기 때문에 변수나 함수에 대해서 깊게 파고 있지는 않았다.

하지만 C#에서는 몇가지 새로운 경고와 변수의 사용시점등이 약간 다른 면이 있어서 다음과 같이 정리해 보았다.


    class aaa

    {

        private int c = 0; -> 선언 순간 초기화. 봐도 신기하기는 하다.


        public void a()

        {

            this.c = 1;

        }

    }


위의 클래스를 컴파일 하면 다음과 같은 경고가 뜬다.

경고 CS0414: 'ConsoleApplication1.aaa.c' 필드가 할당되었지만 그 값은 사용되지 않습니다.

사용되지 않았다? 그냥 상수 값의 대입은 컴파일러가 사용하지 않았다라고 판단하는 것 같다.

그럼 어떤때 사용했다고 할까?



    class aaa

    {

        private int c = 100;


        public void a()

        {

            int dd = 100;

            this.c = dd; -> 이 녀석을 대입하면 사용했다고 본다. 상수가 지역변수등을 혹은 public void a(int temp) { this.c = temp;} 같은 식도 된다.

            b(this.c); -> 아무것도 없는 함수지만 내부에 넣었다는 것만으로도 사용한 것으로 본다.

        }


        public void b(int a)

        {

        }


        public void p()

        {

            Console.WriteLine(c); -> 마찬가지다.

        }


        public aaa(int a)

        {

            this.c = a; -> 생성자를 만들어서 대입해주면 역시나 사용했다고 인식한다.

        }


    }