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

C#共用体

C#没有共用体。

只能做到类似

using System;
using System.Runtime.InteropServices;

// 方法1:使用显式布局
[StructLayout(LayoutKind.Explicit)]
public struct MyUnion
{
    [FieldOffset(0)] public int Number;
    [FieldOffset(0)] public float FloatNumber;
    [FieldOffset(0)] public byte Byte1;
    [FieldOffset(1)] public byte Byte2;
    [FieldOffset(2)] public byte Byte3;
    [FieldOffset(3)] public byte Byte4;
}

// 使用示例
var union = new MyUnion();
union.Number = 123456789;
Console.WriteLine($"Float: {union.FloatNumber}"); // 共享同一内存位置
Console.WriteLine($"Bytes: {union.Byte1}, {union.Byte2}, {union.Byte3}, {union.Byte4}");

ip地址转换:

[StructLayout(LayoutKind.Explicit)]
public struct IPAddressUnion
{
    [FieldOffset(0)] public uint Address;
    [FieldOffset(0)] public byte Byte1;
    [FieldOffset(1)] public byte Byte2;
    [FieldOffset(2)] public byte Byte3;
    [FieldOffset(3)] public byte Byte4;
    
    public string GetIPString()
    {
        return $"{Byte4}.{Byte3}.{Byte2}.{Byte1}"; // 注意字节序
    }
    
    public void SetIPString(string ip)
    {
        var parts = ip.Split('.');
        if (parts.Length == 4)
        {
            Byte1 = byte.Parse(parts[3]);
            Byte2 = byte.Parse(parts[2]);
            Byte3 = byte.Parse(parts[1]);
            Byte4 = byte.Parse(parts[0]);
        }
    }
}

// 使用示例
var ipUnion = new IPAddressUnion();
ipUnion.SetIPString("192.168.1.1");
Console.WriteLine($"IP as uint: {ipUnion.Address}");
Console.WriteLine($"IP as string: {ipUnion.GetIPString()}");

http://www.dtcms.com/a/491179.html

相关文章:

  • 正点原子RK3568学习日志7-module_init优先级
  • 脑机接口:BCI2000框架,EEG信号解码?
  • 2025“芯星计划”华中区域启动暨长沙民政加速科技集成电路测试验证实践基地揭牌仪式圆满收官
  • 一般的学校网站怎么做网站主要的设计内容主题
  • docker后端jar包本地构建镜像
  • Spring Boot 3零基础教程,Spring Boot 日志的归档与切割,笔记22
  • 序列化的几种常见方式
  • 蜜罐技术重塑网络安全新格局
  • 做网站需要用到的符号语言基于网站开发的app
  • 企业管理咨询网站gta买办公室网站建设中
  • Python 的 typing 库介绍
  • 33. C++ cout cin 文件IO
  • 腾讯地图时空智能开放平台MCP接入说明
  • 10.15考研笔记
  • 计算机操作系统文件管理——文件系统挂载
  • ForkJoinPool 核心的任务分配与执行
  • 沧州网站改版优化app的制作需要多少钱
  • 提示词工程优化
  • 小程序商城开源最新seo新手教程
  • Android Studio USB串口通信
  • 数据结构的复习(1):
  • Python爬虫第5课:正则表达式与数据清洗技术
  • 自己做背景的网站app商城软件
  • 网页网站模板2023重大新闻事件10条
  • h5游戏免费下载:极限超车
  • Linux之认识理解目录
  • HarmonyOS Next 学习文档总览 [特殊字符]
  • 织梦微信网站模板wordpress4.9.4漏洞
  • oracle删除表与表空间清理机制
  • 企业怎么样上各大网站做宣传网站pv统计方法