确定是否需要实例化泛型类类型

时间:2017-12-13 18:10:23

标签: c# generics

我有一个类Data<T>,我用它来存储通信链接上收到的数据。 Data<T>类包含Value类型的T属性和Timestamp类型的DateTime属性。

是否可以在类构造函数中确定所请求类型的默认值是null,并在那种情况下实例化它?

我查看了new()类约束。但是我在使用字符串类型的类时遇到了麻烦,因为我收到的字符串错误没有无参数构造函数。

这是一个在dataValue4.Value上导致NullReferenceException的示例,因为类型Value的{​​{1}}属性未实例化。

Foo

1 个答案:

答案 0 :(得分:0)

您可以使用Activator创建实例。

var type = typeof(T);
var value = Activator.CreateInstance(type) as T;

这将创建一个具有该类型默认值的实例。