最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

介紹C# 泛型類在使用中約束

 更新時(shí)間:2013年09月04日 15:21:54   作者:  
這篇文章介紹了C# 泛型類在使用中約束,有需要的朋友可以參考一下

首先看一下泛型的基本語(yǔ)法

訪問修飾符 返回類型 泛型方法名 <T>(T 參數(shù))

1):無(wú)法在泛型方法內(nèi)部給任何 T 類型創(chuàng)建實(shí)例的對(duì)象,因?yàn)樵诜盒头椒▋?nèi)部不知道傳進(jìn)來(lái)的對(duì)象有哪些構(gòu)造函數(shù)
2):約束是對(duì)內(nèi)部的!(對(duì)于泛型方法)約束也是會(huì)被繼承的!

3):給泛型類 加類型(引用類型,值類型)的約束:where T:class,new ( )

遇到的問題:
在寫MongodbHelper類的時(shí)候,為了能處理多種類別,所以如下定義了該類:

復(fù)制代碼 代碼如下:

 public class MongodbHelper<T>
 {
  。。。。。
  }

在該類的實(shí)現(xiàn)中有如下操作:
復(fù)制代碼 代碼如下:

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ú)法通過,因此查出上面的定義是有誤的,GetCollection的簽名如下:

IMongoCollection<T> GetCollection<T>(string name) where T : class;

它對(duì)T有特殊的自己的約束,因此

在定義的時(shí)候也要加上對(duì)應(yīng)的約束,來(lái)保證T的約束一致。

相關(guān)文章

最新評(píng)論

绥化市| 丰台区| 阿拉善右旗| 山西省| 海丰县| 通城县| 宜黄县| 明水县| 呼图壁县| 秦皇岛市| 阿勒泰市| 潮安县| 无极县| 峨山| 治多县| 资中县| 广饶县| 新疆| 关岭| 安仁县| 定襄县| 若尔盖县| 全南县| 大城县| 嘉鱼县| 策勒县| 微山县| 浦江县| 江孜县| 黔东| 沂源县| 镇原县| 左云县| 砀山县| 城口县| 沙雅县| 泰来县| 三门县| 翁源县| 文山县| 邵阳县|