클래스(참조형, Reference Type)를 선언함과 동시에 인스턴스를 new로 받을 수 있다.
이후 메서드에서 반환한 인스턴스를 참조변수에 대입한다.
MyClass mc = new MyClass(); //여기서 생성한 인스턴스는 사용하지 않게 된다.
mc = GetMyClass(); //반환값이 MyClass인 메서드
이렇게 될경우 처음 선언과 동시에 생성한 인스턴스는 프로그램 동작도중 한번도 사용하지 않아 메모리 낭비의 원인이 된다.
클래스를 이용하려면 new를 사용해야 한다는 표면적인 지식밖에 없다면 비효율적인 코드를 작성하기 쉽다.
문법적으로 틀리지 않았기 때문에 컴파일할 때 오류가 발생하지 않고 실제로 프로그램을 동작시켜도 의도한 대로 동작하기 때문에 수정이 필요한 코드라는 사실을 알기 힘들다.
인스턴스를 바로 사용하지 않을 경우 선언과 동시에 인스턴스를 생성할 필요없고 아래와 같이 선언만하고 넘어가고 실제 사용할 인스턴스를 대입하는 것이 좋다.
MyClass mc;
...
mc = GetMyClass();
'C# > 기본적인 팁' 카테고리의 다른 글
딕셔너리와 비슷하지만 '키' 부분만 저장하고 '값'을 저장하지 않는 HashSet<T> 클래스 (0) | 2021.08.23 |
---|---|
배열과 List<T>의 다양한 처리 (조건을 만족하는 요소 구하기, 중복 제거, 순서대로 나열, 컬렉션 연결) (0) | 2021.08.16 |
기본적인 관용구 (0) | 2021.08.04 |
구체적인 클래스가 아니고 인터페이스에 대해 프로그래밍하자. (0) | 2021.05.18 |
C# 응용프로그램에서 상수를 정의할 때 static readonly를 사용하자 (0) | 2021.05.18 |