gpt4 book ai didi

c# - 在运行时分配类型

转载 作者:太空狗 更新时间:2023-10-30 00:57:33 24 4
gpt4 key购买 nike

我有一个类型为 T 的变量 x 和一个字符串中的值。例如我有:

bool x, value = "True"
int x, value = "1"
  • 是否有通用的方法将值分配/解析/反序列化给 x?

请注意,T 可以是引用类型或原始类型!

最佳答案

你可以使用Convert.ChangeType method .

这将涵盖所有基本类型转换。

示例:var i = Convert.ChangeType("1", typeof(int));

您还可以查看 IConvertible interface您可以使用它来将您自己的对象从另一种类型转换为另一种类型。

最后,正如 codymanix 所说,您可以依靠 OOB XmlSerialization 或 Binary Serialization 来序列化您的对象。

[编辑] 您可以在编译时检查目标类型是否可转换,方法是将 convert.ChangeType 方法包装在实用程序类中,如下所示:

public static class ConvertUtility
{
public static T Convert<T>(object source) where T : IConvertible
{
return (T)System.Convert.ChangeType(source, typeof(T));
}
}

关于c# - 在运行时分配类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4956575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com