首先看一下泛型的基本語法
訪問修飾符 返回類型 泛型方法名 <T>(T 參數)
1):無法在泛型方法內部給任何 T 類型創建實例的對象,因為在泛型方法內部不知道傳進來的對象有哪些構造函數
2):約束是對內部的!(對于泛型方法)約束也是會被繼承的!
3):給泛型類 加類型(引用類型,值類型)的約束:where T:class,new ( )
遇到的問題:
在寫MongodbHelper類的時候,為了能處理多種類別,所以如下定義了該類:
var db = mongo.GetDatabase(_databaseName);
var collection = db.GetCollection<T>(_collectionName);
collection.Insert(t, true);
mongo.Disconnect();
IMongoCollection<T> GetCollection<T>(string name) where T : class;
它對T有特殊的自己的約束,因此
在定義的時候也要加上對應的約束,來保證T的約束一致。
新聞熱點
疑難解答