두 개의 일반 매개 변수가있는 클래스가 있습니다. 두 번째 일반 매개 변수를 첫 번째 일반 매개 변수와 다른 형식으로 제한하려고합니다. 컴파일 타임에 그러한 제한을 만드는 방법이 있습니까? 런타임에 유형을 확인하는 것은별로 유용하지 않습니다.일반 매개 변수 : 다른 유형 보장
public class Test<A, B>
where B : not_typeof(A)
{
// ...
}
두 개의 일반 매개 변수가있는 클래스가 있습니다. 두 번째 일반 매개 변수를 첫 번째 일반 매개 변수와 다른 형식으로 제한하려고합니다. 컴파일 타임에 그러한 제한을 만드는 방법이 있습니까? 런타임에 유형을 확인하는 것은별로 유용하지 않습니다.일반 매개 변수 : 다른 유형 보장
public class Test<A, B>
where B : not_typeof(A)
{
// ...
}
실제로 약간 다른 시나리오이지만 궁극적으로는 @Sam이 –
에 연결되는 것과 같은 대답입니다. 다른 제약 조건이 있습니까? 왜냐하면'A : IUtensil','B : IVehicle','Test 사용자가 있다면 왜 신경 쓰나요? 작동 할 것입니다 ... 좀 더 자세히 설명해 주시겠습니까? –
Kobi
그런 제약 조건을 쓸 수는 없지만 다른 제약 조건을 둘 수 있습니다. 예를 들어'A'가 클래스'Animal'과'B' 클래스에서 파생되어야하는 경우 '자전거'클래스에서 파생되어야하며,이 두 클래스 중 어느 것도 다른 클래스에서 파생되지 않으면 '코비 (Kobi)'에서와 같이 'A'와 'B'가 같은 유형이 될 수 없다는 것을 알게됩니다. 비슷하게 하나가'struct' 제약 조건 (null 값을 가질 수없는 값 타입)을 가지고 있고 다른 하나는'class' 제약 조건 (참조 타입)을 가지고있는 경우입니다. –