gpt4 book ai didi

c# - 在 C# 中转换与指定类型

转载 作者:太空宇宙 更新时间:2023-11-03 19:23:35 24 4
gpt4 key购买 nike

我一直在寻找解析 JSON 字符串的方法,并且遇到了这两种方法。

class Test {

String test;

String getTest() { return test; }
String setTest(String test) { test = test; }

}

var ser = new JavaScriptSerializer();
Test abc = (Test)ser.DeserializeObject("{ \"test\":\"some data\" }");

var ser = new JavaScriptSerializer();
Test abc = ser.Deserialize<Test>("{ \"test\":\"some data\" }");

第一个是将对象转换为类型,第二个是指定类型?它们之间有什么真正的区别吗?有一种方法更可取吗?

最佳答案

第二个选项(使用通用 Deserialize<T> 方法)更适合您的特定示例,因为您需要特定类型。

当输入不代表您期望类型的对象时,两者都会产生略有不同的结果。在第一种情况下,您会在转换中得到一个 InvalidCastException,而在第二种情况下,Deserialize 方法会抛出一个 InvalidOperationException。但除此之外,在性能等方面没有区别。事实上the documentation for Deserialize<T> 声明如下:

The Deserialize method is equivalent to first using the DeserializeObject method to obtain an object graph and then trying to cast the result to type T.

关于c# - 在 C# 中转换与指定类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10359330/

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