国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

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

2020-01-24 03:10:16
字體:
來源:轉載
供稿:網友

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

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

1):無法在泛型方法內部給任何 T 類型創建實例的對象,因為在泛型方法內部不知道傳進來的對象有哪些構造函數
2):約束是對內部的!(對于泛型方法)約束也是會被繼承的!

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

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

復制代碼 代碼如下:

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

在該類的實現中有如下操作:
復制代碼 代碼如下:

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

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

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桦川县| 鲁山县| 建水县| 赣州市| 东丰县| 西城区| 砚山县| 海林市| 长乐市| 胶南市| 崇义县| 鞍山市| 荣昌县| 沭阳县| 延庆县| 吴桥县| 香格里拉县| 永泰县| 江山市| 读书| 张家川| 北海市| 台湾省| 荃湾区| 威海市| 曲松县| 达孜县| 壤塘县| 惠东县| 海丰县| 博湖县| 阿勒泰市| 花垣县| 湄潭县| 乌兰察布市| 英吉沙县| 双鸭山市| 宜昌市| 宁波市| 喀喇沁旗| 丰县|