我定義了一個(gè)泛型類(下面的例子),我需要在類中實(shí)例化一個(gè)T,但是卻無法使用new T()。而用default(T)卻只能得到null或0。應(yīng)該怎么做。public class MyClass<T> { public T Get() { T t = new T(); return t; }}
2 回答

小唯快跑啊
TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊
請(qǐng)如以下代碼示例使用:
public class MyClass<T> where T : new()
{
public T Get()
{
return new T();
}
}
C# 編譯器無法保證你的代碼在引用類型時(shí)也能安全通過,因?yàn)橛袝r(shí)候我們會(huì)在類中使用 private 修飾構(gòu)造函數(shù)。所以需要一個(gè)顯示的構(gòu)造器約束。而值類型已經(jīng)滿足上述要求。
- 2 回答
- 0 關(guān)注
- 460 瀏覽
添加回答
舉報(bào)
0/150
提交
取消