2012-10-08 54 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類型參數必須是一個值類型。可以指定除Nullable之外的任何值 類型。

where T: class type參數必須是引用類型;這個 也適用於任何類,接口,委託或數組類型。