3
您編寫了哪些代碼來約束名爲MyDictionary
的通用字典以使其具有帶引用類型值的值類型鍵?具有值類型鍵和引用類型值的通用字典
我覺得這是我的回答:
public class MyDictionary<Tkey,TValue>:Dictionary<Tkey,TValue>
where Tkey:struct
where TValue:class
{
}
但我不知道這是正確的答案..
您編寫了哪些代碼來約束名爲MyDictionary
的通用字典以使其具有帶引用類型值的值類型鍵?具有值類型鍵和引用類型值的通用字典
我覺得這是我的回答:
public class MyDictionary<Tkey,TValue>:Dictionary<Tkey,TValue>
where Tkey:struct
where TValue:class
{
}
但我不知道這是正確的答案..
看起來好像沒什麼問題。一個小問題是,您將無法使用Nullable
類型(例如int?
)作爲此類詞典中的鍵或值。
從Constraints on Type Parameters:
where T: struct
類型參數必須是一個值類型。可以指定除Nullable
之外的任何值 類型。
where T: class
type參數必須是引用類型;這個 也適用於任何類,接口,委託或數組類型。
出於好奇,爲什麼如果泛型類型是一個值類型或參考一個這樣的字典呢? – Candide
一個很好的問題,即使我想知道這樣的情況會有幫助。這在我接受科技採訪時已經提出了...... – GutterStink