반응형
"모든 제네릭 유형"정의가있는 C # 제네릭 "where constraint"?
예를 들어 보겠습니다.
일반적인 클래스 / 인터페이스 정의가 있습니다.
interface IGenericCar< T > {...}
위의 클래스와 연결하려는 다른 클래스 / 인터페이스가 있습니다. 예를 들면 다음과 같습니다.
interface IGarrage< TCar > : where TCar: IGenericCar< (**any type here**) > {...}
기본적으로 내 일반 IGarrage가 또는 IGenericCar
여부에 관계없이 해당 유형에 대한 종속성이 없기 때문에 에 종속되기를 원합니다 .IGenericCar<int>
IGenericCar<System.Color>
이를 달성하는 데 일반적으로 두 가지 방법이 있습니다.
Option1 : 제약 조건에 전달되어야 하는를IGarrage
나타내는 다른 매개 변수를 추가 합니다.T
IGenericCar<T>
interface IGarrage<TCar,TOther> where TCar : IGenericCar<TOther> { ... }
Option2 : IGenericCar<T>
일반적이지 않은 기본 인터페이스를 정의하고 해당 인터페이스에 대해 제한
interface IGenericCar { ... }
interface IGenericCar<T> : IGenericCar { ... }
interface IGarrage<TCar> where TCar : IGenericCar { ... }
다음과 같은 일을하는 것이 합리적일까요?
interface IGenericCar< T > {...}
interface IGarrage< TCar, TCarType >
where TCar: IGenericCar< TCarType > {...}
반응형
'code' 카테고리의 다른 글
여러 awaits보다 단일 'await Task.WhenAll'을 선호해야하는 이유는 무엇입니까? (0) | 2020.08.15 |
---|---|
"?"가있는 신속한 변수 장식 (0) | 2020.08.15 |
R을 프로그래밍 언어로 배우는 방법 (0) | 2020.08.15 |
git diff --ignore-space-change를 기본값으로 만드는 방법 (0) | 2020.08.15 |
GUI없이 셀레늄 (Firefox) 웹 드라이버를 실행할 수 있습니까? (0) | 2020.08.15 |