는 다음과 같은 일반적인 고려 :C# 제네릭 형식 제약 - 형식 매개 변수가 동일하지 않도록?
class Foo<T, U> {}
는 동일한 유형 인에서 T와 U를 방지 할 수 있습니까? 이 질문은 호기심에서 비롯됩니다.
는 다음과 같은 일반적인 고려 :C# 제네릭 형식 제약 - 형식 매개 변수가 동일하지 않도록?
class Foo<T, U> {}
는 동일한 유형 인에서 T와 U를 방지 할 수 있습니까? 이 질문은 호기심에서 비롯됩니다.
아니요. 여기에 나열된 유일한 옵션은 여기에 있습니다. Constraints on Type Parameters
http://msdn.microsoft.com/en-us/library/d5x73970%28v=vs.80%29.aspx은 6 가지 종류의 제약이 있음을 보여줍니다. 평등은 포함되지 않습니다.
아니요, 그런 건 없어요. 그러나 D과 같은 템플릿 메타 프로그래밍을 통해 다른 언어를 조사하고 싶을 수도 있습니다.이 스크립트는 제네릭의 훨씬 강력한 컴파일 타임 변형입니다.
다른 사람들에 의해 지적 되었 듯이 형식 제약 조건을 사용할 수 없지만 정적 생성자를 사용하여 런타임 검사를 추가 할 수는 있습니다. http://en.csharp-online.net/ECMA-334:_25.1.5_Static_constructors_in_generic_classes
대용량 추가 제약 조건 (예 : T : class, U : struct 또는 다른 상속 계층 구조)을 요구하는 답변을 찾지 못했다고 가정합니다. –
컴파일 타임에 없습니다. 하지만 분명히 예외를 통해 런타임에이 작업을 수행 할 수 있습니다. – digEmAll
생각한 실험입니다. 한 대답에서 제안 된 정적 생성자는 흥미 롭습니다. – Amy