首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在C#中将字节读入结构

在C#中,可以使用BinaryReader类来将字节读入结构。BinaryReader类提供了一系列方法,可以从流中读取不同类型的数据,包括字节、字符、字符串、整数、浮点数等。

以下是一个示例代码,演示如何使用BinaryReader类将字节读入结构:

代码语言:csharp
复制
using System;
using System.IO;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential)]
struct MyStruct
{
    public int Field1;
    public short Field2;
    public byte Field3;
}

class Program
{
    static void Main(string[] args)
    {
        byte[] bytes = new byte[] { 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC };
        MemoryStream ms = new MemoryStream(bytes);
        BinaryReader br = new BinaryReader(ms);

        MyStruct myStruct = new MyStruct();
        myStruct.Field1 = br.ReadInt32();
        myStruct.Field2 = br.ReadInt16();
        myStruct.Field3 = br.ReadByte();

        Console.WriteLine($"Field1: {myStruct.Field1}");
        Console.WriteLine($"Field2: {myStruct.Field2}");
        Console.WriteLine($"Field3: {myStruct.Field3}");

        br.Close();
        ms.Close();
    }
}

在上面的示例代码中,我们首先定义了一个名为MyStruct的结构,该结构包含三个字段:Field1Field2Field3。然后,我们创建了一个MemoryStream对象,并将一些字节写入该对象。接下来,我们使用BinaryReader类从MemoryStream对象中读取字节,并将这些字节读入MyStruct结构。最后,我们将MyStruct结构中的字段打印到控制台上。

需要注意的是,BinaryReader类的ReadInt32ReadInt16ReadByte方法分别读取32位整数、16位整数和8位整数。如果需要读取其他类型的数据,可以使用BinaryReader类中的其他方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

18分41秒

041.go的结构体的json序列化

领券