为了账号安全,请及时绑定邮箱和手机立即绑定

怎样实例化 泛型类型?

怎样实例化 泛型类型?

BIG阳 2018-11-07 05:02:40
我定义了一个泛型类(下面的例子),我需要在类中实例化一个T,但是却无法使用new T()。而用default(T)却只能得到null或0。应该怎么做。public class MyClass<T> {    public T Get()    {        T t = new T();        return t;    }}
查看完整描述

2 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

请如以下代码示例使用:

public class MyClass<T> where T : new()
{
    public T Get()
    {
        return new T();
    }
}

C# 编译器无法保证你的代码在引用类型时也能安全通过,因为有时候我们会在类中使用 private 修饰构造函数。所以需要一个显示的构造器约束。而值类型已经满足上述要求。


查看完整回答
反对 回复 2018-11-12
?
弑天下

TA贡献1818条经验 获得超8个赞

public class MyClass<T> where T : new()

增加泛型约束


查看完整回答
反对 回复 2018-11-12
  • 2 回答
  • 0 关注
  • 442 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信