일반화(Generalization)
일반화(Generalization)
란 데이터 형식(Data Type)
에서 연관성이 있는 2개 이상의 개체 집합을 묶어내는 것 입니다.
데이터 형식이 다른 변수들을 출력한다라고 가정하면, 비슷하면서 다른 코드를 중복해서 작성해야 합니다.
이때 일반화를 사용하여 코드의 중복을 최소화합니다.
일반화 구조
일반화 메서드(Generalization Method)
T
를 이용하여 서로 다른 데이터 형식의 메서드를 일반화할 수 있습니다.
세부 코드
실제 출력 값 : 1 / 2 / 3 / 일반화 / 45.6 / True
일반화 클래스(Generalization Class)
T
를 이용하여 서로 다른 데이터 형식의 클래스를 일반화할 수 있습니다.
세부 코드
실제 출력 값 : 1 / one / two / 23.456 / three / True
제약조건 where : T
모든 형식에 대하여 대응할 수 있지만, 특정 조건에만 만족하는 경우에만 사용 할 수 있게 제한할 수 있습니다.
세부 코드
where T : struct
: T는 값 형식으로 제한
where T : class
: T는 참조 형식으로 제한
where T : new()
: 매개 변수가 없는 생성자로 제한
where T : 기반 클래스 이름
: 기반 클래스의 파생 클래스로 제한
where T : 인터페이스 이름
: 명시한 인터페이스로 제한
where T : U
: 다른 형식 매개 변수 U로부터 상속받은 클래스로 제한
실제 출력 값 : 1 / 2 / 3 / 45.6
값 형식으로 제한
하여 배열
과 double
만 출력이 가능합니다.
string
, bool
은 CS0453
에러를 일으킵니다.
댓글 남기기