C# 泛型可能导致的装箱操作陷阱
代码如下,已解释
public bool TryGetValue(K key, out V value) { //注意这里,如果key是普通值类型,如int,key == null的判断会导致int的装箱操作 //if (key == null) //{ // value = mDefaultValue; // return false; //} var i = 0; if(i == null) //注意,这个判断是合法的,永远为false { } if (mMap.TryGetValue(key, out i)) { value = mList[i].Value; return true; } value = mDefaultValue; return false; }