国产精品久久国产精品99 gif,国产精品久久久久久久伊一,中文字幕在线观看,天美传媒精品1区2区3区,亚洲情a成黄在线观看动漫尤物 ,久久精品国产久精国产一老狼,亚洲殴美国产日韩av,中文无码字幕中文有码字幕

                南京軟件定制開發

                南京傾心軟件歡迎您訪問本站

                13605185909

                新聞資訊

                NEWS CENTER
                欄目導航

                南京軟件開發之C#泛型

                發布時間:Mar 22, 2021         已有 人瀏覽

                一、什么是泛型

                泛型是C#語言和公共語言運行庫(CLR)中的一個新功能,它將類型參數的概念引入.NET Framework。類型參數使得設計某些類和方法成為可能,例如,通過使用泛型類型參數T,可以大大簡化類型之間的強制轉換或裝箱操作的過程。說白了,泛型就是通過參數化類型來實現在同一份代碼上操作多種數據類型,利用“參數化類型”將類型抽象化,從而實現靈活的復用。

                以下是一個簡單的示例,可以通過T來控制不同的類型

                此時,Test就是一個泛型類。T就是要實例化的泛型類型。如果T被實例化為int型,那么成員變量就是int型的,如果T被實例化為string型,那么就是string類型的。

                該例中,我創建了一個稱為MyList泛型類。為把它參數化,我簡單地插入了一個尖括號。在<>內的T代表了實際的當使用該類時要指定的類型。在MyList類中,定義了一個靜態字段objCount。我在構造器中增加它的值。因此我能發現使用我的類的用戶共創建了多少個那種類型的對象。屬性Count返回與被調用的實例同類型的實例的數目。

                泛型方法

                Copy()方法就是一個泛型方法,它與參數化的類型T一起工作。當在Main()中激活Copy()時,編譯器根據提供給Copy()方法的參數確定出要使用的具體類型。

                二、泛型的主約束和次約束是什么?

                       where T : struct 類型必須是一種值類型(struct)

                  where T : class 類型必須是一種引用類型(class)

                  where T : new() 類型必須有一個無參數的構造器

                  where T : class_name 類型可以是class_name或者是它的一個子類

                  where T : interface_name 類型必須實現指定的接口

                  你可以指定約束的組合,就象: where T : IComparable, new()。這就是說,用于參數化類型的類型必須實現Icomparable接口并且必須有一個無參構造器。

                舉例

                1.接口約束。

                例如,可以聲明一個泛型類 MyGenericClass,這樣,類型參數 T 就可以實現 IComparable<T> 接口:

                區別于

                一個是T繼承IComparable,一個是MyGenericClass2繼承IComparable

                2.基類約束。

                指出某個類型必須將指定的類作為基類(或者就是該類本身),才能用作該泛型類型的類型參數。這樣的約束一經使用,就必須出現在該類型參數的所有其他約束之前。

                3.構造函數約束。

                以使用 new 運算符創建類型參數的實例;但類型參數為此必須受構造函數約束 new() 的約束。new() 約束可以讓編譯器知道:提供的任何類型參數都必須具有可訪問的無參數(或默認)構造函數。new() 約束出現在 where 子句的最后。

                4.對于多個類型參數,每個類型參數都使用一個 where 子句。

                5.還可以將約束附加到泛型方法的類型參數。

                6. 裸類型約束

                用作約束的泛型類型參數稱為裸類型約束。當具有自己的類型參數的成員函數需要將該參數約束為包含類型的類型參數時,裸類型約束很有用。

                 為什么要有約束呢?

                當一個泛型參數沒有任何約束時,它可以進行的操作和運算時非常有限的。因為不能對實參做任何類型上的保證,這時候就需要用到泛型的約束。泛型的主要約束和次要約束都是指泛型的實參必須滿足一定的規范。C#編譯器在編譯的過程中可以根據約束來檢查所有泛型類型的實參并確保其滿足約束條件。

                一個泛型參數可以至多擁有一個主要約束,主要約束可以是一個引用類型、class或者struct。如果指定一個引用類型,則實參必須是該類型或者該類型派生類型。class規定實參必須是一個引用類型。struct規定了參數必須是一個之類新。

                Copyright © 2020-2022 南京傾心軟件技術有限公司 版權所有     蘇ICP備2020070309號-1
                QQ在線咨詢
                13605185909
                返回頂部
                主站蜘蛛池模板: 一本大道久久香蕉成人网| 波多野结衣 黑人| 成人无码av一区二区三区| 精品无套挺进少妇内谢| 国产日产欧洲无码视频| 亚洲国产欧美中文丝袜日韩| 午夜在线不卡精品国产| 26uuu亚洲电影最新地址| 日韩深夜福利视频在线观看| √新版天堂资源在线资源| 欧美嫩交一区二区三区| 亚洲gv天堂无码男同在线观看| 欧美激情二区三区| 欧洲亚洲1卡二卡三卡2021| 亚洲欧洲日产国码高潮αv| 亚洲欧洲自拍拍偷精品 美利坚 | 四川丰满少妇无套内谢| 天堂在/线中文在线资源 官网| 香蕉啪视频在线观看视频久| 国产精品中文字幕自拍| 久久精品国产精品亚洲毛片 | 国内少妇毛片视频| 久久av高潮av无码av| 中文字幕日韩一区二区不卡 | 国产片AV国语在线观看手机版| 国产精品中文久久久久久久| 欧美奶涨边摸边做爰视频| 国产无人区码一区二区| 欧美交换配乱吟粗大25p| 国产超碰人人爱被ios解锁| 亚洲αⅴ无码乱码在线观看性色 | 两性色午夜视频免费老司机| 国产精品入口麻豆| 国产色产综合色产在线视频| 人妻少妇精品视频无码专区| 亚洲美女少妇偷拍萌白酱| 日韩欧美中文字幕公布| 欧美性xxxxx极品少妇直播| 亚洲欧美偷国产日韩| 内射夜晚在线观看| 2019最新久久久视频精品|