[Effective C#] 지역변수를 선언할 때는 var를 사용하는 것이 낫다

2024. 7. 23. 14:21·독서/Effective C#
목차
  1. 01. var 키워드의 장점
  2. 01. A. 반환 타입 유추
  3. 01. B. 코드 가독성 향상
  4. 02. var 키워드에 대한 오해
  5. 03. var 키워드를 사용하는 것이 나을 뿐이지 절대적으로 좋은 것은 아니다.


01. var 키워드의 장점

01. A. 반환 타입 유추

개발하고 있는 프로젝트가 본인이 100% 기여한 것이라면 메서드의 반환 타입에 대해서 쉽게 살펴보거나 알 수 있는 내용들이 많다. 하지만 무심코 넘어갈 수 있는 부분이 있다.

 

아래의 코드를 보자.

public abstract class Animal {
   ...
}

public class Dog : Aniaml {
   public Dog Getdog() { return new Dog(); }
}


...

public class Program {

    private static void Main() {
        Animal animal = new Animal();
        Dog dog = new Dog();
    
        animal = dog.GetDog();
    }
}

 

이렇게 코드를 작성할 일은 없겠지만, 프로젝트 규모가 커질수록 헷갈릴 수 있다. GetDog 메서드를 추상화 작업을 위해서 처리된 것이라면 문제가 없겠지만, Dog 클래스의 다른 메서드가 필요한 상태라면 에러로 이어질 수 있다.

 

이러한 상황은 var 키워드를 통해서 Dog 클래스가 할당될 수 있도록 처리할 수 있다.

 

01. B. 코드 가독성 향상

Dictionary<string, UnitStatusData> unitDictionry = new Dictionary<string, UnitStatusData>();

 

위와 같이 긴 코드가 있을 때, 다음과 같이 변경할 수 있다.

 

var unitDictionry = new Dictionary<string, UnitStatusData>();

 

코드의 타입을 알기에도 어렵지 않다.

 


02. var 키워드에 대한 오해

컴퓨터 언어의 분류는 동적 타이핑 언어와 정적 타이핑 언어로 나눌 수 있다. 간단하게 설명하면 동적 타이핑 언어는 런타임에서 변수의 타입이 정해지고 정적 타이핑 언어는 컴파일에서 변수의 타입이 정해진다.

 

C#은 정적 타이핑 언어에 속한다. var 키워드를 사용하면 동적 타이핑을 진행하는 것으로 알 수 도 있겠지만 var 키워드는 컴파일 시점에서 전달 받은 데이터를 추론해서 변수의 타입을 지정하는 것이다. C#에서 동적 타이핑을 사용하기 위해서는 C# 4.0에 추가된 Dynamic 키워드를 통해서 진행할 수 있다.

 

결론적으로 var 키워드는 정적 타이핑이다.

 


03. var 키워드를 사용하는 것이 나을 뿐이지 절대적으로 좋은 것은 아니다.

상황에 따라서 var 키워드를 적절히 사용하는 것이 올바르다. 만약에 var 키워드를 통해서 컴파일러가 타입을 지정하게 한다면 전달하는 타입이 명확해야한다.

 

컴파일러의 성능이 좋아지면서 이러한 부분은 에러로 감지하고 어떤 부분이 잘못되었는지 찾아주고 있지만 저성능의 컴파일러를 사용한다면 이러한 것을 인식하고 있어야 한다.

'독서 > Effective C#' 카테고리의 다른 글

[Effective C#] nameof 연산자를 적극 활용하라  00 2024.08.01
[Effective C#] 문화권별로 다른 문자열을 생성하려면 FormattableString을 사용하라  00 2024.07.31
[Effective C#] string.Format을 보간 문자열로 대체하라  00 2024.07.30
[Effective C#] 캐스트보다는 is, as가 좋다  00 2024.07.29
[Effective C#] const보다는 readonly가 좋다.  11 2024.07.24
  1. 01. var 키워드의 장점
  2. 01. A. 반환 타입 유추
  3. 01. B. 코드 가독성 향상
  4. 02. var 키워드에 대한 오해
  5. 03. var 키워드를 사용하는 것이 나을 뿐이지 절대적으로 좋은 것은 아니다.
'독서/Effective C#' 카테고리의 다른 글
  • [Effective C#] 문화권별로 다른 문자열을 생성하려면 FormattableString을 사용하라
  • [Effective C#] string.Format을 보간 문자열로 대체하라
  • [Effective C#] 캐스트보다는 is, as가 좋다
  • [Effective C#] const보다는 readonly가 좋다.
태역
태역
  • 태역
    RYULAB
    태역
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 언어
        • C
        • C++
        • C#
      • 엔진, 프레임워크
        • Unity
        • Unreal
        • Electron
      • 공부
        • 디자인 패턴
        • 수학
        • CS
        • Git
        • 알고리즘
        • 자료구조
      • 코테
        • 프로그래머스
        • 백준
      • 독서
        • Effective C#
        • CLR via C#
        • 뇌를 자극하는 윈도우즈 시스템 프로그래밍
        • 오브젝트
        • CSAPP
        • OSTEP
        • 이득우의 게임 수학
      • 프로젝트
        • Unity
      • 개발 일지
        • 퓨처리티
        • 골든타임
      • 활동
        • 게임잼 후기
        • 게임제작동아리 브릿지
        • 크래프톤 정글
        • 기타
      • 기타
  • 블로그 메뉴

    • 링크

    • 공지사항

      • 2024 04 17
    • 인기 글

    • 태그

      인프런 #인프런강의후기 #게임개발 #게임개발강의 #인강후기 #강의후기 #게임개발자 #인프런강의
      티스토리챌린지
      오블완
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    태역
    [Effective C#] 지역변수를 선언할 때는 var를 사용하는 것이 낫다
    상단으로

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.