首页 新闻 赞助 找找看

怎样实例化 泛型类型?

0
悬赏园豆:5 [已解决问题] 解决于 2009-03-12 22:24

我定义了一个泛型类(下面的例子),我需要在类中实例化一个T,但是却无法使用new T()。而用default(T)却只能得到null或0。应该怎么做。

public class MyClass<T>
{
    public T Get()
    {
        T t
= new T();
        return t;
    }
}

luotong的主页 luotong | 初学一级 | 园豆:4
提问于:2009-03-12 21:23
< >
分享
最佳答案
0

请如以下代码示例使用:

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

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

Angel Lucifer | 小虾三级 |园豆:775 | 2009-03-12 22:13
其他回答(1)
0

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

增加泛型约束

Gray Zhang | 园豆:17610 (专家六级) | 2009-03-12 22:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册