創建的
我有這樣的構造,所有的基類繼承:
public SCO(SPListItem item, List<Vote> votes)
{
UpVotes = voteMeta.UpVotes;
DownVotes = voteMeta.DownVotes;
VoteTotal = UpVotes - DownVotes;
HotScore = Calculation.HotScore(Convert.ToInt32(UpVotes), Convert.ToInt32(DownVotes), Convert.ToDateTime(item["Created"]));
}
這是我卡住。我無法實例化<T>
。
public static List<T> SortedCollection<T>(SPListItemCollection items, ListSortType sortType, List<Vote> votes) where T : SCO
{
var returnlist = new List<T>();
for (int i = 0; i < items.Count; i++) { returnlist.Add(new T(items[i], votes)); }
switch (sortType)
{
// Sort List based on passed ENUM
}
return returnlist;
}
如果我能做到這一切在一個方法,我避免了一些昂貴的鑄造和拳擊。
你爲什麼不能使用?你會得到什麼錯誤? – carlosfigueira
除非存在新約束,否則不能實例化泛型類型參數,並且允許添加的唯一新約束是無參數構造函數。請參閱:http://msdn.microsoft.com/en-us/library/sd2w2ew5.aspx –
無法創建類型參數'T'的實例,因爲它沒有new()約束。 – Wesley