[英]Is a String generic parameter treated as a value-type or reference-type?
[英]Dictionary as parameter, where the Value-Type is irrelevant
我有一個函數,它返回與給定值相比較的Dictionary-Keys-List的下一個更高的值。 如果我們有{1,4,10,24}的鍵列表和給定值8,則該函數將返回10。
顯然,Dictionary的Value-Part的類型對於函數,函數代碼無關緊要
Dictionary<int, int>
和
Dictionary<int, myClass>
會是一樣的。
當我想用任何一個字典調用函數時,方法頭必須是什么樣子,int是key-Type而value-Type是無關緊要的?
我試過了:
private int GetClosedKey(Dictionary<int, object> list, int theValue);
但是當我用詞典調用時,它說有非法的論點。 我不想為我的函數可能被調用的每個不同的值類型復制'n'paste函數。 任何想法,如何實現這一目標?
先謝謝你,弗蘭克
你可以把它變成通用的:
private int GetClosedKey<T>(Dictionary<int, T> list, int theValue)
在大多數情況下,當您調用方法時,您可以使用類型推斷來避免必須為T
指定類型參數。
但是,我會考慮將其更改為:
private int GetClosedKey(ICollection<int> list, int theValue)
然后調用它:
int value = GetClosedKey(dictionary.Keys, desiredValue);
這使代碼更加通用 - 畢竟,沒有必要將它與字典緊密結合。 除了其他任何東西,這將使測試更簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.