default

    [C#] default와 new() 제약 조건 사용하기

    new와 defaultnew는 generic 함수의 제약 조건이다. 해당 제약 조건을 걸면 generic 함수 내에서 new T()와 같은 코드를 사용할 수 있다. 이 제약 조건을 걸었을 경우 struct와 enum은 항상 사용 가능하고, class는 구현에 따라 달라지게 된다.  default는 C#의 기본 키워드로 제약 조건이 필요하지 않고, 다른 많은 곳에서도 사용할 수 있는 기능이다. default를 각 타입에 사용할 경우 아래 표와 같은 값이 생성된다.classclass는 참조 타입(reference type)이기 때문에 null을 허용하기에 default를 사용했을 때 값은 항상 null이 된다.new의 경우 생성자를 하나도 만들지 않은 상태라면, 항상 사용이 가능하다(기본 생성자). 반대로 ..

    [C#] default와 new() 제약조건 사용하기

    generic 함수를 작성하는데, 기본 값을 생성해줘야 할 때가 있었다. 이 때 사용하게 되는 키워드가 new와 default다. 이 글에서는 class, struct 그리고 enum을 사용할 때 어떤 점을 주의해야 하는지 살펴보도록 하겠다. new와 default new는 generic 함수의 제약 조건이다. 해당 제약 조건을 걸면 generic 함수 내에서 new T()와 같은 코드를 사용할 수 있다. 이 제약 조건을 걸었을 경우 struct와 enum은 항상 사용가능하고, class는 구현에 따라 달라지게 된다. default는 C#의 기본 키워드로 제약 조건이 필요하지도 않고, 다른 많은 곳에서도 사용할 수 있는 기능이다. default를 각 타입에 사용할 경우 아래 표와 같은 값이 생성된다. t..

    [C#] 자료형(Data Type)의 기본 값(default) 연산자

    C# 7.1부터는 컴파일러가 자료형을 유추하여 기본값을 할당하는 default 리터럴이 추가되었으며, 코드를 심플하게 작성할 수 있다. default 연산자, 리터럴 default 연산자는 괄호 안에 자료형을 명시해준다. int num = default(int); Console.WriteLine(num); // 0 default 리터럴은 괄호를 생략할 수 있다. 컴파일러가 변수 num의 자료형을 유추하여 기본값을 할당한다. int num = default; Console.WriteLine(num); // 0 아래 표는 각 타입의 기본 값이다. 자료형(Data Type) 기본값 참조 형식 null 정수 숫자 유형 0 부동 소수점 숫자 유형 0 bool false char '\0' enum 0 struct ..