介紹C# 泛型類(lèi)在使用中約束
首先看一下泛型的基本語(yǔ)法
訪問(wèn)修飾符 返回類(lèi)型 泛型方法名 <T>(T 參數(shù))
1):無(wú)法在泛型方法內(nèi)部給任何 T 類(lèi)型創(chuàng)建實(shí)例的對(duì)象,因?yàn)樵诜盒头椒▋?nèi)部不知道傳進(jìn)來(lái)的對(duì)象有哪些構(gòu)造函數(shù)
2):約束是對(duì)內(nèi)部的?。▽?duì)于泛型方法)約束也是會(huì)被繼承的!
3):給泛型類(lèi) 加類(lèi)型(引用類(lèi)型,值類(lèi)型)的約束:where T:class,new ( )
遇到的問(wèn)題:
在寫(xiě)MongodbHelper類(lèi)的時(shí)候,為了能處理多種類(lèi)別,所以如下定義了該類(lèi):
public class MongodbHelper<T>
{
。。。。。
}
在該類(lèi)的實(shí)現(xiàn)中有如下操作:
mongo.Connect();
var db = mongo.GetDatabase(_databaseName);
var collection = db.GetCollection<T>(_collectionName);
collection.Insert(t, true);
mongo.Disconnect();
這個(gè)是對(duì)mongo做插入操作的方法,這個(gè)時(shí)候,db.GetCollection<T>(_collectionName) 這里的T導(dǎo)致編譯無(wú)法通過(guò),因此查出上面的定義是有誤的,GetCollection的簽名如下:
IMongoCollection<T> GetCollection<T>(string name) where T : class;
它對(duì)T有特殊的自己的約束,因此
在定義的時(shí)候也要加上對(duì)應(yīng)的約束,來(lái)保證T的約束一致。
相關(guān)文章
DevExpress之ChartControl實(shí)現(xiàn)餅狀圖百分比演示實(shí)例
這篇文章主要介紹了DevExpress之ChartControl實(shí)現(xiàn)餅狀圖百分比演示的方法,實(shí)例講述了窗體與圖形繪制函數(shù)的用法,需要的朋友可以參考下2014-10-10詳解C#如何使用重載方法實(shí)現(xiàn)不同類(lèi)型數(shù)據(jù)的計(jì)算
這篇文章主要為大家詳細(xì)介紹了C#如何使用重載方法實(shí)現(xiàn)不同類(lèi)型數(shù)據(jù)的計(jì)算,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02Unity3D UI Text得分?jǐn)?shù)字增加的實(shí)例代碼
這篇文章主要介紹了Unity3D UI Text得分?jǐn)?shù)字增加方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04C#中隱藏TabControl選項(xiàng)卡標(biāo)簽的解決方案
這篇文章主要介紹了C#中隱藏TabControl選項(xiàng)卡標(biāo)簽的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04C# readnodefile()不能讀取帶有文件名為漢字的osg文件解決方法
這篇文章主要介紹了C# readnodefile()不能讀取帶有文件名為漢字的osg文件解決方法,需要的朋友可以參考下2015-09-09.net實(shí)現(xiàn)裁剪網(wǎng)站上傳圖片的方法
這篇文章主要介紹了.net實(shí)現(xiàn)裁剪網(wǎng)站上傳圖片的方法,比較實(shí)用的功能,需要的朋友可以參考下2014-07-07C# Winfom 中ListBox的簡(jiǎn)單用法詳解
這篇文章主要介紹了C# Winfom 中ListBox的簡(jiǎn)單用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12C#影院售票系統(tǒng)畢業(yè)設(shè)計(jì)(3)
這篇文章介紹了C#影院售票系統(tǒng)畢業(yè)設(shè)計(jì),文章主要內(nèi)容是關(guān)于購(gòu)票、座位顏色狀態(tài)的改變及場(chǎng)次座位狀態(tài)的顯示,需要的朋友可以參考下2015-11-11