2012-10-08 2 views
3

MyDictionary이라는 일반 사전에 참조 유형 값이있는 값 유형 키를 갖도록 제한하려면 어떤 코드를 작성합니까?값 유형 키 및 참조 유형 값이있는 일반 사전

public class MyDictionary<Tkey,TValue>:Dictionary<Tkey,TValue> 
where Tkey:struct 
where TValue:class 
{ 

} 

하지만이 정답 인 경우 잘 모르겠어요 ..

+0

일반적인 유형이 값 유형이거나 그러한 사전에 대한 참조 유형 인 경우 왜 중요한가요? – Candide

+0

좋은 질문입니다. 심지어 그런 조건이 도움이 될지 궁금합니다. 기술 인터뷰에서 언젠가는 나에게 제기되었다. – GutterStink

답변

4

나에게 잘 보이는 :

나는이 내 대답이었다 생각합니다. 작은주의 사항으로는 Nullable 유형 (예 : int?)을 이러한 사전의 키 또는 값으로 사용할 수 없습니다. Constraints on Type Parameters에서

는 :

where T: struct type 인수는 값 유형이어야합니다. Nullable을 제외한 모든 값 을 지정할 수 있습니다.

where T: class 유형 인수는 참조 유형이어야합니다. 이 은 모든 클래스, 인터페이스, 위임 또는 배열 유형에도 적용됩니다.