我正在使用从我的dbml文件生成的数据类的属性生成T4模板。要获取我使用item.PropertyType.Name
的类的属性类型,问题是,对于可空类型,它返回Nullable
``1 , is there a way to get
Nullable for example, or
int?`?
答案 0 :(得分:11)
int?
=== Nullable<int>
。他们是一样的。如果您想知道可空类型是什么类型,那么您可以使用Nullable.GetUnderlyingType(typeof(int?))
方法获取类型(在此实例中为int
)
答案 1 :(得分:7)
GetGenericArguments是你想要的方法。
if (item.PropertyType.IsGenericType) {
if (item.PropertyType.GetGenericType() == typeof(Nullable<>)) {
var valueType = item.PropertyType.GetGenericArguments()[0];
}
}
在第二个想法中,在这种情况下,Darren的答案要简单得多,因为当你传入一个不可为空的类型时它会返回null。
答案 2 :(得分:0)
看看this other question。 Marc Gravell的答案会告诉你如何获得泛型参数的类型。