C#知识点整理系列 变量类型转换
一、byte和char
在C#中byte和char可以认为是等价的,但是文本显示有所差异。
C#中的byte,与C++中的unsigned char类似,都是存储一个0-255的数,byte本质是数字,不能代表一个字母。c#中byte和char的转换方式如下:
上图中对Encoding.Default和Encoding.ASCII的理解不深,两个转换的结果一致。希望明白的朋友在评论区指正,万分感谢!!!
二、byte数组和结构体
struct转byte数组
/// <summary>
/// 结构体转byte数组
/// </summary>
/// <param name="sobj">结构体类型</param>
/// <param name="size">结构体长度</param>
/// <returns></returns>
public static byte[] Struct2Byte(object sobj,int size)
{
IntPtr buffer = Marshal.AllocHGlobal(size);
try
{
Marshal.StructureToPtr(sobj, buffer, false);
byte[] bytes = new byte[size];
Marshal.Copy(buffer, bytes, 0, size);
return bytes;