You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用System.Text.Json反序列化时,初始化变量是否浪费计算资源?

System.Text.Json反序列化时预初始化Dictionary的行为

你定义的类代码如下:

public class CurrencyItem : UserDDBItemInstance
{
    public Dictionary<string, int> Currencies { get; set; } = new Dictionary<string, int>();
}

针对你的问题,结论是:这个预先初始化的Dictionary<string, int>不会被创建后丢弃,具体行为分两种场景:

  • 当JSON中包含Currencies字段的有效键值对数据时:System.Text.Json的反序列化器会直接复用你预先初始化的字典实例,将JSON中的数据添加到该字典里,不会创建新的字典对象来替换它。
  • 当JSON中没有Currencies字段,或者该字段值为null时:反序列化器会保留你预先初始化的空字典,不会将属性置为null。

唯一的例外情况是:如果给Currencies属性添加了[JsonRequired]特性,同时JSON中未提供该字段,此时反序列化会抛出异常,但预先初始化的字典也不会被丢弃(异常发生在反序列化完成前,对象实例的初始化逻辑已经执行)。

内容的提问来源于stack exchange,提问作者Tom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 03:41:31