欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

首先看一下泛型的基本語法

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

1):無法在泛型方法內(nèi)部給任何 T 類型創(chuàng)建實例的對象,因為在泛型方法內(nèi)部不知道傳進來的對象有哪些構(gòu)造函數(shù)
2):約束是對內(nèi)部的?。▽τ诜盒头椒ǎ┘s束也是會被繼承的!

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

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

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

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

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

mongo.Connect();

var db = mongo.GetDatabase(_databaseName);

var collection = db.GetCollection<T>(_collectionName);

collection.Insert(t, true);

mongo.Disconnect();



這個是對mongo做插入操作的方法,這個時候,db.GetCollection<T>(_collectionName) 這里的T導(dǎo)致編譯無法通過,因此查出上面的定義是有誤的,GetCollection的簽名如下:

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

它對T有特殊的自己的約束,因此

在定義的時候也要加上對應(yīng)的約束,來保證T的約束一致。

相關(guān)文章

最新評論