C#--得到对象在内存中的大小和把内存中的字节转换为字符串
一、得到类实例在内存中的大小。
1、首先对象要标记可系列化,再进行二进制序列化,相关代码
1 2 3 4 5 6 7 8 9 10 11 12 | public static long GetSize( object obj) { if (obj == null ) return 0; using ( var stream = new MemoryStream()) { var formatter = new BinaryFormatter(); formatter.Serialize(stream, obj); return stream.Length; } } |
2、示例说明,一个简单的没有数据的对象就有520个字节
二、把二进制序列化转为字符串
备注:BinaryFormatter
在 .NET Core 和 .NET 5+ 中已被弃用
1 2 3 4 5 6 7 8 9 10 | public static string ConvertToSerializedString( object obj) { BinaryFormatter formatter = new BinaryFormatter(); using (MemoryStream ms = new MemoryStream()) { formatter.Serialize(ms, obj); byte [] bytes = ms.ToArray(); return Encoding.UTF8.GetString(bytes); } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步