JToken.FromObject 在非空对象上

JToken.FromObject on notnull object

我有以下扩展方法:

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

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

Possible null reference return.

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

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

正如@dbc 在上面的评论中指出的那样,即使 T 受到 notnull

的约束,json.ToObject<T>() 仍然可以 return null

我最终得到:

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