当前位置: 首页 > news >正文

DeepSeek教unity------MessagePack-04

Union  联合

MessagePack for C# 支持序列化接口类型和抽象类类型的对象。它的行为类似于 XmlInclude 或 ProtoInclude。在 MessagePack for C# 中,这些被称为Union。只有接口和抽象类可以被 Union 属性注解。需要唯一的联合键。

/****************************************************文件:Test_05.cs作者:Edision日期:#CreateTime#功能:示例5:Union
*****************************************************/using MessagePack;
using UnityEngine;public class Test_05 : MonoBehaviour
{public void Test(){//IUnionSample data = new FooClass() { XYZ = 999 };IUnionSample data = new BarClass() { OPQ = "BarClass" };// 序列化接口类型的对象。var bin = MessagePackSerializer.Serialize(data);// 再次反序列化。var reData = MessagePackSerializer.Deserialize<IUnionSample>(bin);// Use with e.g. type-switching in C# 7.0switch (reData){case FooClass x:Debug.Log(x.XYZ);break;case BarClass x:Debug.Log(x.OPQ);break;default:break;}}// 注解继承类型[Union(0, typeof(FooClass))][Union(1, typeof(BarClass))]public interface IUnionSample { }[MessagePackObject]public class FooClass : IUnionSample{[Key(0)]public int XYZ { get; set; }}[MessagePackObject]public class BarClass : IUnionSample{[Key(0)]public string OPQ { get; set; }}
}

联合在内部被序列化为两个元素的数组。

IUnionSample data = new BarClass { OPQ = "FooBar" };var bin = MessagePackSerializer.Serialize(data);// Union is serialized to two-length array, [key, object]
// [1,["FooBar"]]
Console.WriteLine(MessagePackSerializer.ConvertToJson(bin));

抽象类与接口运行方式一样

[Union(0, typeof(SubUnionType1))]
[Union(1, typeof(SubUnionType2))]
[MessagePackObject]
public abstract class ParentUnionType
{[Key(0)]public int MyProperty { get; set; }
}[MessagePackObject]
public class SubUnionType1 : ParentUnionType
{[Key(1)]public int MyProperty1 { get; set; }
}[MessagePackObject]
public class SubUnionType2 : ParentUnionType
{[Key(1)]public int MyProperty2 { get; set; }
}

请注意,你不能在派生类型中重复使用父类型中已经存在的相同键,因为内部将使用一个单一的扁平数组或映射,因此不能有重复的索引/键。

相关文章:

DeepSeek教unity------MessagePack-04

Union 联合 MessagePack for C# 支持序列化接口类型和抽象类类型的对象。它的行为类似于 XmlInclude 或 ProtoInclude。在 MessagePack for C# 中&#xff0c;这些被称为Union。只有接口和抽象类可以被 Union 属性注解。需要唯一的联合键。 /******************************…...

Java异常体系深度解析:从Exception到Error

文章目录 前言一、Java异常体系概览ExceptionError 二、受检异常与非受检异常受检异常&#xff08;Checked Exception&#xff09;非受检异常&#xff08;Unchecked Exception&#xff09; 三、常见的Error类型四、异常处理机制try-catch-finally结构Throws关键字 五、自定义异…...

【linux】文件与目录命令 - ln

文章目录 1. 基本用法2. 常用参数3. 用法举例4. 注意事项 ln 命令用于在文件系统中创建硬链接或符号链接&#xff08;软链接&#xff09;&#xff0c;是文件共享和路径引用的常用工具。 1. 基本用法 语法&#xff1a; ln [选项] 源文件 [目标文件/目标目录]功能&#xff1a; 创…...

Xilinx kintex-7系列 FPGA支持PCIe 3.0 吗?

Xilinx kintex-7系列资源如下图 Xilinx各系列的GT资源类型和性能 PCIe Gen1/2/3的传输速率对比 K7上面使用的高速收发器GTX最高速率为12.5GT/s&#xff0c; PCIe Gen2 每个通道的传输速率为 5 GT/s。 PCIe Gen3 每个通道的传输速率为 8 GT/s。 所以理论上硬件支持PCIe3.0&#…...

无人机遥感技术在农业中的具体应用:株数和株高、冠层覆盖度、作物倒伏检测、叶面积指数、病虫害监测、产量估算、空间数据综合制图

近年来&#xff0c;随着无人机技术的飞速发展&#xff0c;其在智慧农业领域的应用越来越广泛。无人机遥感作为一种高效的空间大数据获取手段&#xff0c;能够为农业生产提供多时相、多维度、大面积的农情信息&#xff0c;为实现精准农业和智慧农业提供了有力支持。今天&#xf…...

前端框架React知识回顾

首先&#xff0c;得确定用户的需求&#xff0c;可能是一个准备面试的前端开发者&#xff0c;想要系统复习React相关知识点。接下来要考虑React的核心概念&#xff0c;比如组件、生命周期、Hooks这些肯定是必须的。然后&#xff0c;面试中常问的问题&#xff0c;比如虚拟DOM、状…...

坑多多之ac8257 i2c1 rtc-pcf8563

pcf85163 ordering information Ordering information Package Description Version Marking code PCF85163T/1 SO8 ① SOT96-1 PF85163 PCF85163TS/1 TSSOP8 ② SOT505-1 85163 ①plastic small outline package; 8 leads;body width 3.9 mm ②plastic thin…...

webpack构建流程

文章目录 [TOC](文章目录) 运行流程初始化流程编译构建流程compile编译make 编译模块build module 完成模块编译 输出流程seal输出资源emit输出完成 小结 运行流程 是一个串行的过程&#xff0c;它的工作流程就是将各个插件串联起来 在运行过程中会广播事件&#xff0c;插件只…...

React - 组件之props属性

在 React 中&#xff0c;props&#xff08;即属性&#xff09;是组件之间传递数据的一种方式。它是 React 组件的基础&#xff0c;用于将数据从父组件传递到子组件。 一、类组件中 1. props 的作用 数据传递: props 允许父组件向子组件传递数据。子组件可以使用这些数据来渲…...

PMTUD By UDP

通过UDP探测MTU&#xff0c;并实现udp echo server // Description: UDP echo server. // g udp_echo_server.cc -o udp_echo_server #include <iostream> #include <cstring> #include <arpa/inet.h> #include <unistd.h>#define PORT …...

Hutool - BloomFilter:便捷的布隆过滤器实现

1. 布隆过滤器简介 布隆过滤器&#xff08;Bloom Filter&#xff09;是一种空间效率极高的概率型数据结构&#xff0c;用于判断一个元素是否存在于一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法&#xff0c;但缺点是有一定的误判率&#xff0c;即判断元素存在…...

【学习资源】时间序列数据分析方法(1)

时间序列数据分析是一个有趣的话题&#xff0c;让我们多花一些时间来研究。此篇为第一篇文章。主要介绍特征提取方法、深度学习时序数据分析模型、参考资源。期望能帮助大家解决工业领域的相关问题。 1 特征提取方法&#xff1a;信号处理 (来源:INTELLIGENT FAULT DIAGNOSIS A…...

盛铂科技SWFA100捷变频频率综合器:高性能国产射频系统的关键选择

在现代射频系统中&#xff0c;频率综合器是实现精确频率控制和快速跳频的核心组件。盛铂科技推出的SWFA100捷变频频率综合器凭借其卓越的性能和小型化设计&#xff0c;成为高性能射频系统中的理想选择。 SWFA100捷变频频率综合器 高速跳频与宽频覆盖 SWFA100捷变频频率综合器能…...

释放你的元数据:使用 Elasticsearch 的自查询检索器

作者&#xff1a;来自 Elastic Josh Asres 了解如何使用 Elasticsearch 的 “self-quering” 检索器来通过结构化过滤器提高语义搜索的相关性。 在人工智能搜索的世界中&#xff0c;在海量的数据集中高效地找到正确的数据至关重要。传统的基于关键词的搜索在处理涉及自然语言的…...

【快速幂算法】快速幂算法讲解及C语言实现(递归实现和非递归实现,附代码)

快速幂算法 快速幂算法可用分治法实现 不难看出&#xff0c;对任意实数a和非负整数n&#xff0c;有&#xff1a; a n { 1 , n 0 , a ≠ 0 0 , a 0 ( a n 2 ) 2 , n > 0 , n 为偶数 ( a n 2 ) 2 ∗ a , n > 0 , n 为奇数 a^n \begin{cases} 1, & n 0, a\neq 0…...

3. 导入官方dashboard

官方dashboard&#xff1a;https://grafana.com/grafana/dashboards 1. 点击仪表板 - 新建 - 导入 注&#xff1a;有网络的情况想可以使用ID&#xff0c;无网络情况下使用仪表板josn文件 2. 在官方dashboard网页上选择符合你现在数据源的dashboard - 点击进入 3. 下拉网页选…...

怎么理解 Spring Boot 的约定优于配置 ?

在传统的 Spring 开发中&#xff0c;大家可能都有过这样的经历&#xff1a;项目还没开始写几行核心业务代码&#xff0c;就已经在各种配置文件中耗费了大量时间。比如&#xff0c;要配置数据库连接&#xff0c;不仅要在 XML 文件里编写冗长的数据源配置&#xff0c;还要处理事务…...

Dify 是什么?Dify是一个开源的LLM应用开发平台,支持快速搭建生成式AI应用,具有RAG管道、Agent功能、模型集成等特点

首先&#xff0c;Dify是一个开源的LLM应用开发平台&#xff0c;支持快速搭建生成式AI应用&#xff0c;具有RAG管道、Agent功能、模型集成等特点75。根据搜索结果&#xff0c;网页6详细对比了多个RAG和AI开发框架&#xff0c;包括MaxKB、FastGPT、RagFlow、Anything-LLM等。其中…...

数据预处理都做什么,用什么工具

数据预处理是数据分析、数据挖掘和机器学习中的关键步骤&#xff0c;其目的是将原始数据转换为适合后续分析或建模的格式。以下是关于数据预处理的主要内容及常用工具的详细介绍&#xff1a; 一、数据预处理的主要任务 数据预处理的主要任务包括以下几个方面&#xff1a; 数据…...

windows蓝牙驱动开发-在蓝牙配置文件驱动程序中接受 L2CAP 连接

L2CAP 服务器配置文件驱动程序会响应来自远程设备的传入逻辑链接控制和适应协议 (L2CAP) 连接请求。 例如&#xff0c;PDA 的 L2CAP 服务器配置文件驱动程序将响应来自 PDA 的传入连接请求。 接收传入 L2CAP 连接请求 1. 若要接收来自特定 PSM 的任何远程设备的传入 L2CAP 连…...

AI Agent如何通过Human Pages实现人类任务自动化外包

1. 项目概述&#xff1a;当AI学会“雇佣”人类最近在折腾AI Agent自动化工作流时&#xff0c;我遇到了一个经典的瓶颈&#xff1a;很多任务&#xff0c;比如去几十个创业目录网站提交项目信息、做本地化校对、或者找真人测试应用&#xff0c;AI自己根本搞不定。要么是网站反爬太…...

SD-WebUI-Inpaint-Anything 插件:自定义修复模型终极配置指南

SD-WebUI-Inpaint-Anything 插件&#xff1a;自定义修复模型终极配置指南 【免费下载链接】sd-webui-inpaint-anything Inpaint Anything extension performs stable diffusion inpainting on a browser UI using masks from Segment Anything. 项目地址: https://gitcode.co…...

普渡机器人宣布融资近10亿:北汽产投与蓝思科技是投资方

雷递网 乐天 4月23日商用服务机器人领军企业普渡机器人日前宣布完成近10亿元新一轮融资&#xff0c;本轮融资后&#xff0c;公司估值突破百亿元。普渡机器人本轮融资由龙岗金控、亚投资本联合领投&#xff0c;北汽产投、蓝思科技、弘晖基金、珠三角与长三角等多地政府引导基金及…...

PowerShell效率翻倍:给你的终端加个‘时光机’,永久保存并快速检索所有历史命令(基于PSReadLine)

PowerShell效率革命&#xff1a;构建你的命令时光机与智能检索系统 每次在终端里反复输入相似的命令时&#xff0c;你是否想过——那些曾经敲过的命令&#xff0c;其实是你最宝贵的数字资产&#xff1f;PowerShell的默认历史记录功能就像沙滩上的脚印&#xff0c;一次退潮就会消…...

LFM2.5-VL-1.6B赋能运维:自动化生成服务器监控图表分析报告

LFM2.5-VL-1.6B赋能运维&#xff1a;自动化生成服务器监控图表分析报告 1. 运维人员的日常痛点 每天早上打开电脑&#xff0c;第一件事就是查看服务器监控数据&#xff0c;这可能是很多运维工程师的日常。面对Grafana上密密麻麻的CPU、内存、网络流量曲线&#xff0c;需要花大…...

CANN/runtime设备同步内存复制示例

5_d2d_sync_memory_copy 【免费下载链接】runtime 本项目提供CANN运行时组件和维测功能组件。 项目地址: https://gitcode.com/cann/runtime 描述 本样例展示了Device内的内存复制&#xff0c;使用aclrtMemcpy内存复制接口。 产品支持情况 本样例支持以下产品&#x…...

CANN/ops-nn GeluMul算子

GeluMul 【免费下载链接】ops-nn 本项目是CANN提供的神经网络类计算算子库&#xff0c;实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-nn 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系列产品√At…...

混合专家MoE没你想的那么玄乎:拆开GPT-4和DeepSeek V4的核心架构

上周跟一个朋友聊天&#xff0c;他说他在读 MoE 的论文&#xff0c;读了两天没太搞明白。我说你换个角度想——MoE 就像一家大型公司的组织架构。 传统的大模型就像一个全能型员工&#xff0c;一个人啥都得会。MoE 换了个思路&#xff1a;你不是要让一个人啥都会吗&#xff1f;…...

性价比高的芯片老化座哪家公司好?

芯片作为电子设备的核心组件&#xff0c;其质量和性能直接关系到整个产品的稳定性与可靠性。因此&#xff0c;芯片老化座的选择显得尤为重要。那么&#xff0c;在市场上琳琅满目的品牌中&#xff0c;哪家公司的芯片老化座性价比最高呢&#xff1f;本文将为您详细介绍深圳市鸿怡…...

【期末必刷】计算机网络高频考点:FTP协议的双端口机制(20/21号端口详解)

【期末必刷】计算机网络高频考点&#xff1a;FTP协议的双端口机制&#xff08;20/21号端口详解&#xff09;作者&#xff1a;培风图南以星河揽胜 标签&#xff1a;#计算机网络 #期末复习 #FTP协议 #TCP/IP #考研408&#x1f4dd; 一、知识点还原与核心总结 在计算机网络的传输层…...