C#create Object obj = new T()?
我有一个超类,我们可以调用class A
和几个子类,例如class a1 : A
, class a2 : A
,…和a6 : A
。 在我的class B
,我有一组方法可以创建一个子类并将其添加到B
的List
中。
我想缩短我目前的代码。 所以不要写作
Adda1() { aList.Add( new a1() ); } Adda2() { aList.Add( new a2() ); } ... Adda6() { aList.Add( new a6() ); }
相反,我想写一些与此相似的东西
Add() { aList.Add( new T() ); // This gives an error saying there is no class T. }
那可能吗?
是否也可以约束T
必须是A
类型或其子类之一?
李的回答是正确的。
原因是为了能够调用new T()
您需要在type参数中添加new()
约束:
void Add() where T : new() { ... new T() ... }
您还需要一个约束T : A
以便您可以将类型为T
的对象添加到List
。
注意:当您将new()
与其他约束一起使用时, new()
约束必须是最后一个 。
有关
上述就是C#学习教程:C#create Object obj = new T()?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
public void Add() where T : A, new() { aList.Add(new T()); }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1023744.html