할당문보다 변수초기화를 사용하는 편이 더 좋다 라고들 합니다.

그 이유에 대해서 생각해 보겠습니다.


[1번]

int a = 3;


[2번]

int b;

b=3;


1번식은 선언식 변수 초기화이고 2번식은 그냥 선언 후 변수할당문입니다.

여기서 말하는 할당문보다 변수 초기화를 사용하는 편이 더 좋다 라는 말은 2번식보다 1번식이 더 좋다는 뜻입니다.

그렇다고 언제나 1번식이 좋은건 아니므로 좋은 경우와 좋지않은 경우를 살펴보겠습니다. 


좋은경우

 - 클래스의 여러 생성자에서 멤버 변수를 항상 동일하게 초기화 할 경우


// -- case 1 : 여러 생성자에서 동일한 초기화를 하고자 할 경우

// -- 어떤 생성자라 할지라도 _list 는 처음부터 List<int>()를 할당하고 시작합니다.

    

private List<int> _list = new List<int>();

 

    public MyClass1(int a)

    {

        _list.Add(a);

    }

 

    public MyClass1(int a, int b)

    {

        _list.Add(a);

        _list.Add(b);

    }


 - 생성자에 상관없이 멤버변수를 초기화 하고자 할 경우


// -- case 2 : 생성자 유무에 관계 없이 초기화 하고자 할 경우

// -- 생성자가 없다 하더라도, 기본적으로 _list 는 할당 됩니다.


class MyClass2

{           

    private List<int> _list = new List<int>();



선언식 변수 초기화가 안좋은 경우는 언제일까요?

좋지않은 경우

- 멤버 변수가 생성자에 따라 다르게 설정해야 할 경우


// -- Bad Case 1 : 생성자에 따라, 멤버 변수를 다르게 설정해야 될 경우

// -- 예제에서 볼 수 있듯이 재할당 하므로 비효율 적입니다.

class BadCase1

{

    List<int> _list = new List<int>();

 

    BadCase1(int list_size)

    {

        // 재할당 ...

        _list = new List<int>(list_size);

    }

}


'Programing > C#' 카테고리의 다른 글

[DevExpress] WinForm WaitIndicator  (0) 2018.09.05
set, get 접근자  (0) 2018.06.29
상수(Constant)  (0) 2018.06.28
개념정리(namespace,class,main,object)  (0) 2018.06.28
[초보자용]버튼 클릭시 TextEdit, TextBox 내용 지우기  (0) 2018.06.15

+ Recent posts