Csharp/C#教程:C#create Object obj = new T()?分享


C#create Object obj = new T()?

我有一个超类,我们可以调用class A和几个子类,例如class a1 : Aclass a2 : A ,…和a6 : A 。 在我的class B ,我有一组方法可以创建一个子类并将其添加到BList中。

我想缩短我目前的代码。 所以不要写作

 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

(0)
上一篇 2022年1月7日
下一篇 2022年1月7日

精彩推荐