C# 如何从类型设置结构值T
我使用的扩展名来自:C# 如何从类型设置结构值T,c#,generics,C#,Generics,我使用的扩展名来自: publicstaticnullable-ToNullable(这个字符串是s),其中T:struct { 可为null的结果=新的可为null(); 尝试 { 如果(!string.IsNullOrEmpty)和&s.Trim().Length>0) { TypeConverter conv=TypeDescriptor.GetConverter(typeof(T)); 结果=(T)conv.ConvertFrom(s); } } 捕获{} 返回结果; } 在我的代码中
publicstaticnullable-ToNullable(这个字符串是s),其中T:struct
{
可为null的结果=新的可为null();
尝试
{
如果(!string.IsNullOrEmpty)和&s.Trim().Length>0)
{
TypeConverter conv=TypeDescriptor.GetConverter(typeof(T));
结果=(T)conv.ConvertFrom(s);
}
}
捕获{}
返回结果;
}
在我的代码中,我从一个类型中获取数据。有没有一种方法可以使用类型强制转换或使用该扩展
更新1:
var values = from p in xdoc.Descendents("Answers")
select r.Attribute("Value").Value.ToNullable<Type.GetType(r.DataType)>()
var值=来自xdoc.substants(“答案”)中的p
选择r.Attribute(“Value”).Value.tonulable()
r、 DaraType是一个数据字符串。否不能将泛型类型参数指定为返回类型对象的方法调用的结果 i、 e.这是无效的
ToNullable()
该类型需要在编译时进行计算,如果语法有效,编译器无法判断linq查询结果中的类型 否不能将泛型类型参数指定为返回类型对象的方法调用的结果 i、 e.这是无效的
ToNullable()
该类型需要在编译时进行计算,如果语法有效,编译器无法判断linq查询结果中的类型 您的代码是什么样子的?@Daniel我已经编写了代码行这不是您问题的答案,但是您可以不测试(!String.IsNullOrEmpty&&s.Trim().Length>0),而只测试(!String.IsNullOrWhitespace())。最大的问题是,鉴于您在编译时不知道它的类型,您打算如何处理
值
呢?您的代码是什么样子的?@Daniel我已经编写了代码行这不是您问题的答案,但您可以只测试(!String.IsNullOrEmpty&&s.Trim().Length>0),而不是测试(!String.IsNullOrWhitespace()).最大的问题是,既然您在编译时不知道它的类型,那么您打算如何处理值
?
var values = from p in xdoc.Descendents("Answers")
select r.Attribute("Value").Value.ToNullable<Type.GetType(r.DataType)>()