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;
        }

 

posted @ 2019-02-18 11:52  时空观察者9号  阅读(170)  评论(0编辑  收藏  举报