C#中使⽤结构体实现Union数据类型C#中使⽤结构体实现Union数据类型:
C#中不⾃带Union数据类型,可以使⽤以下⽅式实现:
引⽤:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
定义:
[StructLayout(LayoutKind.Explicit, Size = 4)]
public struct Union
{
[FieldOffset(0)]
public Byte b0;
[FieldOffset(1)]
public Byte b1;
[FieldOffset(2)]
public Byte b2;
[FieldOffset(3)]
union是什么类型
public Byte b3;
[FieldOffset(0)]
public Int32 i;
[FieldOffset(0)]
public Single f;
}
使⽤:
Union u = new Union();
u.i = 1024;
Console.WriteLine(u.b1 == 4);
联合体所有数据共⽤⼀段内存,可以使⽤int类型i赋值,之后使⽤byte类型b0读取int类型的第⼀个byte⼤⼩。