您的位置:首页 > 健康 > 养生 > ui设计素材库_网页设计与制作难不难_最近爆发什么病毒感染_怎么去推广自己的平台

ui设计素材库_网页设计与制作难不难_最近爆发什么病毒感染_怎么去推广自己的平台

2025/4/2 3:33:32 来源:https://blog.csdn.net/qq992817263/article/details/146536539  浏览:    关键词:ui设计素材库_网页设计与制作难不难_最近爆发什么病毒感染_怎么去推广自己的平台
ui设计素材库_网页设计与制作难不难_最近爆发什么病毒感染_怎么去推广自己的平台

更新日期:2025年3月26日。
Github 仓库:https://github.com/SaiTingHu/HTFramework
Gitee 仓库:https://gitee.com/SaiTingHu/HTFramework

索引

  • 一、SerializableDictionary可序列化字典
    • 1.使用SerializableDictionary
    • 2.实现思路
  • 二、SerializableHashSet可序列化哈希集
    • 1.使用SerializableHashSet
    • 2.实现思路

一、SerializableDictionary可序列化字典

SerializableDictionary<,>可序列化字典类型支持序列化(用于替代不可序列化的Dictionary<,>类型),其拥有与Dictionary<,>一样的适用于频繁查找、插入和删除数据的性能优势。

1.使用SerializableDictionary

使用SerializableDictionary很简单,直接定义SerializableDictionary的可序列化字段即可:

public class Test : HTBehaviour
{[Label("简单字典示例")] public SerializableDictionary<string, string> d1;[Label("复杂字典示例")] public SerializableDictionary<string, Data> d2;protected override void Awake(){base.Awake();foreach (var item in d1){Debug.Log($"简单字典示例中元素:{item.Key} - {item.Value}");}foreach (var item in d2){Debug.Log($"复杂字典示例中元素:{item.Key} - {item.Value}");}}[Serializable]public class Data{public string Name;public int Age;public Vector2 Pos;public Vector3 Angle;public Material Cloth;}
}

在检视器面板是可序列化的(同时支持为其附加各种Inspector特性):

在这里插入图片描述

Tips:为了降低各键值对(Key-Value)之间的视觉干扰,只有选中的键值对(Key-Value)呈现为亮色,其他的显示为暗色。

运行场景:

在这里插入图片描述

2.实现思路

实现思路其实很简单,SerializableDictionary中维护了两个List用于序列化键值对(Key-Value),然后在运行时动态构建一个Dictionary

二、SerializableHashSet可序列化哈希集

SerializableHashSet<>可序列化哈希集类型支持序列化(用于替代不可序列化的HashSet<>类型),其拥有与HashSet<>一样的适用于频繁查找、插入和删除数据的性能优势。

1.使用SerializableHashSet

使用SerializableHashSet很简单,直接定义SerializableHashSet的可序列化字段即可:

public class Test : HTBehaviour
{[Label("简单哈希集示例")] public SerializableHashSet<string> s1;[Label("复杂哈希集示例")] public SerializableHashSet<Data> s2;protected override void Awake(){base.Awake();foreach (var item in s1){Debug.Log($"简单哈希集示例中元素:{item}");}foreach (var item in s2){Debug.Log($"复杂哈希集示例中元素:{item}");}}[Serializable]public class Data{public string Name;public int Age;public Vector2 Pos;public Vector3 Angle;public Material Cloth;}
}

在检视器面板是可序列化的(同时支持为其附加各种Inspector特性):

在这里插入图片描述

运行场景:

在这里插入图片描述

2.实现思路

实现思路其实很简单,SerializableHashSet中维护了一个List用于序列化,然后在运行时动态构建一个HashSet

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com