Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从类型设置结构值T_C#_Generics - Fatal编程技术网

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)>()