首页 > 解决方案 > 非空对象上的 JToken.FromObject

问题描述

我有以下扩展方法:

public static T FromJson<T>(JToken json) where T : notnull  => json.ToObject<T>();

升级到最新的 Json.NET 我现在得到:

可能的空引用返回。

考虑到模板限制,这个错误可以忽略吗?那就是我可以像这样添加感叹号吗?

public static T FromJson<T>(JToken json) where T : notnull  => json.ToObject<T>()!;

标签: c#json.net

解决方案


正如@dbc 在上面的评论中指出的那样,json.ToObject<T>()即使T是约束到,仍然可以返回 nullnotnull

我最终得到:

public static T FromJson<T>(JToken json) where T : notnull => json.ToObject<T>() ?? throw new ArgumentException(typeof(T).ToString()); 

推荐阅读