亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

c# struct能被序列化嗎

c#
小樊
81
2024-11-16 02:45:23
欄目: 編程語言

是的,C# 結構體(struct)可以進行序列化。在 C# 中,可以使用 System.Runtime.Serialization 命名空間中的 ISerializable 接口來實現序列化。要使一個結構體可序列化,需要實現 ISerializable 接口并定義一個名為 SerializeObject 的方法來控制序列化過程。

以下是一個簡單的示例:

using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;

[Serializable]
public struct Person : ISerializable
{
    public string Name;
    public int Age;

    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }

    // 實現 ISerializable 接口的 SerializeObject 方法
    public void SerializeObject(Stream stream)
    {
        IFormatter formatter = new BinaryFormatter();
        formatter.Serialize(stream, this);
    }

    // 反序列化方法
    public static Person DeserializeObject(Stream stream)
    {
        IFormatter formatter = new BinaryFormatter();
        return (Person)formatter.Deserialize(stream);
    }
}

class Program
{
    static void Main()
    {
        Person person = new Person("John Doe", 30);

        // 序列化
        using (MemoryStream ms = new MemoryStream())
        {
            person.SerializeObject(ms);
            ms.Position = 0;

            // 反序列化
            Person deserializedPerson = Person.DeserializeObject(ms);
            Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}");
        }
    }
}

在這個示例中,我們創建了一個名為 Person 的可序列化結構體,并實現了 ISerializable 接口。我們還定義了 SerializeObjectDeserializeObject 方法來分別執行序列化和反序列化操作。最后,在 Main 方法中,我們對 Person 結構體進行了序列化和反序列化。

0
张掖市| 阳朔县| 岚皋县| 东兴市| 孝昌县| 麻江县| 孝感市| 印江| 腾冲县| 天等县| 九江市| 乌拉特中旗| 阿勒泰市| 成武县| 岐山县| 新绛县| 新津县| 教育| 桑植县| 丁青县| 平定县| 湖口县| 黎平县| 中西区| 龙游县| 仙游县| 额尔古纳市| 余干县| 寿光市| 元谋县| 蓬莱市| 承德市| 廊坊市| 布尔津县| 库车县| 冕宁县| 崇仁县| 桦甸市| 搜索| 保靖县| 南昌市|