본문 바로가기

C#/기본적인 팁

형식적으로 인스턴스를 생성하는 것은 낭비이다.

클래스(참조형, Reference Type)를 선언함과 동시에 인스턴스new로 받을 수 있다.

 

이후 메서드에서 반환한 인스턴스참조변수에 대입한다.

 

MyClass mc = new MyClass();    //여기서 생성한 인스턴스는 사용하지 않게 된다.

mc = GetMyClass();    //반환값이 MyClass인 메서드

 

이렇게 될경우 처음 선언과 동시에 생성한 인스턴스프로그램 동작도중 한번도 사용하지 않아 메모리 낭비의 원인이 된다.

 

클래스를 이용하려면 new를 사용해야 한다는 표면적인 지식밖에 없다면 비효율적인 코드를 작성하기 쉽다.

문법적으로 틀리지 않았기 때문에 컴파일할 때 오류가 발생하지 않고 실제로 프로그램을 동작시켜도 의도한 대로 동작하기 때문에 수정이 필요한 코드라는 사실을 알기 힘들다.

 

인스턴스를 바로 사용하지 않을 경우 선언과 동시에 인스턴스를 생성할 필요없고 아래와 같이 선언만하고 넘어가고 실제 사용할 인스턴스를 대입하는 것이 좋다.

 

MyClass mc; 

...

mc = GetMyClass();