【发布时间】:2021-09-07 20:23:43
【问题描述】:
说我疯了,但我的印象是有一个 try 的约定,这意味着试一试,但如果你不能再回复我,让我知道这是一个“不-去”。
我最近开始了一个新项目,我决定使用System.Text.Json 而不是Newtonsoft,因为它已经推出了一段时间,我喜欢玩新事物。
我在JsonConverter 中有以下代码:
using (var jsonDoc = JsonDocument.ParseValue(ref reader))
{
if (jsonDoc.RootElement.TryGetInt32(out int number))
{
}
}
当它是一个数字时,它工作得非常好,但是当它不是一个数字时,它就像我在调用 GetInt32() 一样抛出。
在自定义转换器中,我有时会返回一个数字,但我也可以返回一个对象,其中包含我期望的数字以及字符串。我认为我可以使用TryGetInt32 方法对此进行测试。
我有两个问题:
- 我如何测试我是在取回号码,还是取回号码和字符串?以及
-
TryGetInt32(out int number)和GetInt32()有什么区别?
【问题讨论】: