国产探花免费观看_亚洲丰满少妇自慰呻吟_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的約束一致。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿尔山市| 平顺县| 马关县| 师宗县| 西安市| 轮台县| 洪洞县| 宁夏| 资中县| 宜黄县| 鄂温| 安达市| 琼结县| 额济纳旗| 本溪市| 安岳县| 上蔡县| 宜春市| 洮南市| 额尔古纳市| 安乡县| 枣强县| 隆安县| 吴忠市| 凉城县| 项城市| 寻乌县| 定日县| 神农架林区| 朝阳区| 休宁县| 甘洛县| 冕宁县| 横峰县| 柏乡县| 泸定县| 聂荣县| 彩票| 察哈| 呈贡县| 木里|