gpt4 book ai didi

c# - 将对象转换到 T

转载 作者:IT王子 更新时间:2023-10-29 03:40:39 25 4
gpt4 key购买 nike

我正在使用 .NET 中的 XmlReader 类解析 XML 文件,我认为编写通用解析函数来通用地读取不同属性会很聪明。我想出了以下功能:

private static T ReadData<T>(XmlReader reader, string value)
{
reader.MoveToAttribute(value);
object readData = reader.ReadContentAsObject();
return (T)readData;
}

我逐渐意识到,这并没有完全按照我的计划进行;它会抛出原始类型(例如 intdouble)的错误,因为转换不能从 string 转换为数字类型。有什么方法可以让我的函数以修改后的形式生效吗?

最佳答案

首先检查是否可以转换。

if (readData is T) {
return (T)readData;
}
try {
return (T)Convert.ChangeType(readData, typeof(T));
}
catch (InvalidCastException) {
return default(T);
}

关于c# - 将对象转换到 T,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/899629/

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