C#中泛型的相關知識點總結

一、概念

1.1 泛型

泛型是什么?
書本告訴我們泛型是通過通過參數化類型的方法在同一份代碼上對多種數據類型進行調用。也即是說,如果同一個代碼需要使用不同的數據類型的話就可以定義一個泛型的類或者方法。

泛型的優點是什么?
1.通過使用泛型類或泛型方法,可顯著提高代碼的重用性。
2.創建泛型類,可在編譯時創建類型安全的集合。
3.避免裝箱和拆箱操作降低性能,在大型集合中裝箱和拆箱的影響非常大,時間成倍減少。

1.2 泛型類

簡單的說,就是定義一個不知道參數類型的類,然后在實際調用時才對類型進行定義。
首先聲明一個Food類,T表示參數類型。其中定義兩個T類型的變量。

    class Food<T>{public T Rice { get; set; }public T Number{ get; set; }}

調用類Food可以指定類型對其進行調用。

Food<string> food = new Food<string>();
food.Rice = "東北大米";Food<int> food1 = new Food<int>();
food1.Number = 20;Console.WriteLine("Rice:{0},Number:{1}",food.Rice,food1.Number);

1.3 泛型方法

聲明一個參數類型未知的方法,在調用的時候才對其進行賦值。

        static void Mix<T>(T a,T b, T c){c=a+b;Console.WriteLine(c);}

調用:

            Mix < int >(1, 3, 5);Mix <string>("火鍋底料", "毛肚", "脆腸");

二、小知識點

  1. 分別使用ArrayList和List進行賦值,List運行時間更短。原因是使用ArrayList時內存需進行裝箱拆箱,性能損耗嚴重。使用泛型時,添加或讀取數據都是用的是同一類型。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/256235.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/256235.shtml
英文地址,請注明出處:http://en.pswp.cn/news/256235.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

用scikit-learn研究局部線性嵌入(LLE)

1. scikit-learn流形學習庫概述 在scikit-learn中&#xff0c;流形學習庫在sklearn.manifold包中。里面實現的流形學習算法有&#xff1a; 1&#xff09;多維尺度變換MDS算法&#xff1a;這個對應的類是MDS。MDS算法希望在降維時在高維里樣本之間的歐式距離關系在低維可以得到保…

判斷字符串中是否為數字的三種方法

//1用JAVA自帶的函數 public static boolean isNumeric(String str){for (int i str.length();--i>0;){ if (!Character.isDigit(str.charAt(i))){return false;}}return true;}//2用正則表達式 public static boolean isNumeric(String str){ Pattern pattern Pattern.…

【圖像處理】——Python+opencv實現圖像的hu不變矩特征提取(含原理、推導過程、應用、代碼等)

目錄 轉載本文請注明詳細地址本文介紹了矩和圖像矩的含義本文介紹了不變矩的計算、應用本文介紹了如何計算圖像相似度一、思維導圖 二、普通矩的定義 1、零階矩 2、二階矩

MSSQL-to-MySQL v5.3, 從MSSQL遷移到mySQL的最佳工具

將現有的MSSQL數據庫遷移到MySQL數據庫,嘗試了很多種工具 MySQL Workbench / MSSQL to MySQL Export / DB Converter / openDBcopy 都有這樣那樣的問題。 最后發現就MSSQL-to-MySQL好一點&#xff0c;能夠保證所有表和數據成功遷移&#xff0c;并且字段類型都比較正確。 只是對…

C#窗體應用程序崩潰解決方法總結

一、內存不足 內存是最常見的導致程序崩毀的原因&#xff0c;常用解決方式有如下幾種。 算法中聲明的占內存較大的全局變量或類中聲明的私有變量在循環或運行結束后需進行釋放&#xff0c;手動設置Dispose()&#xff0c;然后GC.Collect()。對一些重復調用的類避免多次實例化。…

【學習的心得】——“快餐”的效率與“挖掘”的重要性

從事Python圖像處理和機器學習方向已經有大半年了&#xff0c;現在作為還是一個研究生的我&#xff0c;大部分時間都是在完成老師給的課題任務&#xff0c;但是這幾個月下來我感覺和老師的意見有點分歧了甚至跟一些同學都有所意見分歧了。 Python雖然是最近幾年火起來的語言&a…

Unity3D Input按鍵系統

默認輸入軸&#xff1a; Horizontal 和 Vertical被映射到w, a, s, d鍵和方向鍵 Fire1, Fire2, Fire3被分別映射到Ctrl&#xff0c;Option&#xff08;Alt&#xff09;和Command鍵 Mouse X 和 Mouse Y被映射到鼠標移動增量 Window Shake X 和 Window Shake Y 被映射到窗口的移動…

iOS app 企業內部發布及HTTPS服務器配置

轉自: http://www.cnblogs.com/cocoajin/p/4082488.html iOS企業內部發布及HTTPS服務器配置 一&#xff1a;所需的條件 1. 蘋果開發者證書&#xff0c;企業版 299$ 版本 2. ssl 證書&#xff0c;即https使用的服務器證書 3. web服務器&#xff0c;支持https 4. 一個域名&#x…

Pytorch超簡單安裝教程

安裝Pytorch 1.1 安裝Annaconda 安裝Pytorch首先需要安裝Annaconda&#xff0c;按照教程&#xff0c;安裝了Annaconda5.2.0的版本。 路徑 記住安裝路徑即可&#xff0c;其余均選默認。 1.2 安裝Pytorch 第一步&#xff0c;打開Anaconda Prompt 。然后輸入 conda create -n…

【圖像處理】——紋理特征提取方法(LBP局部二值模式和GLCM灰度共生矩陣)

紋理特征提取方法 局部二值模式(LBP) (結構法) Local binary patterns 原理 將像素點的鄰域八個像素點與中心像素點值進行比較,大于設為1,小于設為0,這樣就會得到一個鄰域值為1和0的格子,將這八個值按照一定的規則排列成一個二進制的數字,并且轉換為十進制作為中心像…

44. 源代碼解讀-RocketMQ-架構

1. 前言 1.1 github源代碼 https://github.com/apache/rocketmq 1.2 github其他客戶端&#xff0c;比如c,php https://github.com/apache/rocketmq-externals 1.3 運行進程 RocketMQ分成兩個進程運行 NamesrvBrokerNamesrv&#xff0c;命名服務&#xff0c;主要負責Broker狀態管…

jquery檢測瀏覽器類型

使用jquery如下代碼檢測瀏覽器版本時&#xff1a;出問題&#xff0c;在檢測IE瀏覽器&#xff0c;如果版本是IE11時&#xff0c;會出現 $.browser.msie的返回值是false&#xff0c;$.browser.mozilla的返回值是true&#xff0c;即把IE11檢測成火狐了 結局辦法 判斷IE瀏覽器用 …

【leetcode?python】 9. Palindrome Number

#回文數#Method1&#xff1a;將整數轉置和原數比較&#xff0c;一樣就是回文數&#xff1b;負數不是回文數#這里反轉整數時不需要考慮溢出&#xff0c;但不代表如果是C/C等語言也不需要考慮class Solution(object): def isPalindrome(self, x): """ …

Pytorch基礎(一) —— tensorboard的應用

一、簡介與安裝方法 1.1 概念 Tensorboard 是 TensorFlow 的一個工具包&#xff0c;用于展示網絡圖、張量的指標變化和分布情況&#xff0c;如權重W、偏置B、卷積層數、全連接層數等參數&#xff0c;使用該工具可以方便觀察神經網絡訓練過程&#xff0c;分析學習模型訓練的效…

“RuntimeWarning: overflow encountered in ubyte_scalars像素加減運算溢出異常”原因以及解決辦法

轉載本文請注明詳細地址本文介紹了像素點相加減溢出的原因與解決方法 目錄 原因&#xff1a; 解決方法&#xff1a; 原因&#xff1a; 這個問題一般是會出現在圖像處理像素的加減中&#xff0c;出現的原因是因為圖片的像素一般是八位即最大值是256&#xff0c;最小值是0&…

二叉樹重建

一、已知先序遍歷和中序遍歷。求后序遍歷。http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId944 依據先序遍歷和中序遍歷還原二叉樹的主要思想&#xff1a; 1、先序遍歷序列的第一個元素必然是根節點&#xff0c;能夠由此獲取二叉樹的根節點。 2、依據根節點&…

asyn4j -- java 異步方法調用框架

asyn4j 是一個java異步方法調用框架&#xff0c;基于消費者與生產者模式。包括了異步方法執行&#xff0c;異步回調執行&#xff0c;異步工作緩存模塊.支持Spring. 讓我們寫異步方法不再寫很多的相關多線程代碼。用asyn4j輕松搞定異步方法調用.提高程序的響應能力.轉載于:https…

Pytorch基礎(二)—— Transforms詳解

一、概念 Transforms是pytorch的圖像處理工具包&#xff0c;是torchvision模塊下的一個一個類的集合&#xff0c;可以對圖像或數據進行格式變換&#xff0c;裁剪&#xff0c;縮放&#xff0c;旋轉等&#xff0c;在進行深度學習項目時用途很廣泛。下面對Transforms內的常見類的…

圖像基本處理算法的簡單實現(二)

圖像基本處理算法的簡單實現&#xff08;一&#xff09; 圖像基本處理算法的簡單實現&#xff08;二&#xff09; 4&#xff09;膨脹腐蝕 屬于什么心態學&#xff0c;膨脹、腐蝕、擊中/擊不中變換、細化…&#xff08;又暈了T^T&#xff09;。簡單點好像就是集合運算&#xff0…