AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

用了這么多年的泛型,你對它到底有多了解?

來源: 責編: 時間:2023-09-28 15:53:07 502觀看
導讀現代程序員寫代碼沒有人敢說自己沒用過泛型,這個泛型模板T可以被任何你想要的類型替代,確實很魔法很神奇,很多人也習以為常了,但就是這么有趣的泛型T底層到底是怎么幫你實現的,不知道有多少人清楚底層玩法,這篇我就試著來分

現代程序員寫代碼沒有人敢說自己沒用過泛型,這個泛型模板T可以被任何你想要的類型替代,確實很魔法很神奇,很多人也習以為常了,但就是這么有趣的泛型T底層到底是怎么幫你實現的,不知道有多少人清楚底層玩法,這篇我就試著來分享一下,不一定全對哈。。。xBc28資訊網——每日最新資訊28at.com

一:沒有泛型前

現在的netcore 3.1和最新的framework8早已經沒有當初那個被人詬病的ArrayList了,但很巧這玩意不得不說,因為它決定了C#團隊痛改前非,拋棄過往重新上路,上一段ArrayList案例代碼。xBc28資訊網——每日最新資訊28at.com

public class ArrayList    {        private object[] items;        private int index = 0;        public ArrayList()        {            items = new object[10];        }        public void Add(object item)        {            items[index++] = item;        }    }

上面這段代碼,為了保證在Add中可以塞入各種類型 eg: int,double,class, 就想到了一個絕招用祖宗類object接收,這就引入了兩大問題,裝箱拆箱和類型安全。xBc28資訊網——每日最新資訊28at.com

1. 裝箱拆箱

這個很好理解,因為你使用了祖宗類,所以當你 Add 的時候塞入的是值類型的話,自然就有裝箱操作,比如下面代碼:xBc28資訊網——每日最新資訊28at.com

ArrayList arrayList = new ArrayList();            arrayList.Add(3);

<1> 占用更大的空間

這個問題我準備用windbg看一下,相信大家知道一個int類型占用4個字節,那裝箱到堆上是幾個字節呢,好奇吧

本文鏈接:http://www.tebozhan.com/showinfo-26-11909-0.html用了這么多年的泛型,你對它到底有多了解?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 六個討厭 Tailwind CSS 的理由

下一篇: WPF中WCF應用實例

標簽:
  • 熱門焦點
Top