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

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#結構體數組間怎么轉化

發布時間:2021-12-03 09:27:59 來源:億速云 閱讀:195 作者:iii 欄目:編程語言

這篇文章主要講解了“C#結構體數組間怎么轉化”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C#結構體數組間怎么轉化”吧!

C#結構體數組間的轉化問題:在寫C#TCP通信程序時,發送數據時,只能發送byte數組,處理起來比較麻煩,可以按以下方法實現:

(1)C#結構體數組轉化之定義結構體:

//命名空間  using System.Runtime.InteropServices;   //注意這個屬性不能少  [StructLayoutAttribute(  LayoutKind.Sequential,  CharSet=CharSet.Ansi,Pack=1)]  struct TestStruct  ...{  public int c;  //字符串,SizeConst為字符串的***長度  [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]  public string str;  //int數組,SizeConst表示數組的個數,在轉換成  //byte數組前必須先初始化數組,再使用,初始化  //的數組長度必須和SizeConst一致,例test = new int[6];  [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]  public int[] test;  }

(2)C#結構體數組轉化之結構體轉byte數組:

/**//// <summary>  /// 結構體轉byte數組  /// </summary>  /// <param name="structObj">要轉換的結構體</param>  /// <returns>轉換后的byte數組</returns>  public static byte[] StructToBytes(object structObj)  ...{  //得到結構體的大小  int size = Marshal.SizeOf(structObj);  //創建byte數組  byte[] bytes = new byte[size];  //分配結構體大小的內存空間  IntPtr structPtr = Marshal.AllocHGlobal(size);  //將結構體拷到分配好的內存空間  Marshal.StructureToPtr(structObj, structPtr, false);  //從內存空間拷到byte數組  Marshal.Copy(structPtr, bytes, 0, size);  //釋放內存空間  Marshal.FreeHGlobal(structPtr);  //返回byte數組  return bytes;  }

C#結構體數組轉化的問題就向你介紹到這里,希望對你學習和了解C#結構體數組轉化有所幫助。

感謝各位的閱讀,以上就是“C#結構體數組間怎么轉化”的內容了,經過本文的學習后,相信大家對C#結構體數組間怎么轉化這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宣城市| 淮南市| 偃师市| 楚雄市| 兰州市| 图木舒克市| 东乡| 边坝县| 柯坪县| 嘉义市| 仁怀市| 沂水县| 惠来县| 会昌县| 神农架林区| 英超| 交城县| 峨山| 什邡市| 盘山县| 吴江市| 昭平县| 浠水县| 淮阳县| 南靖县| 嘉兴市| 会昌县| 固阳县| 克什克腾旗| 福鼎市| 大城县| 府谷县| 黔江区| 丽水市| 赤峰市| 温宿县| 鹤壁市| 香河县| 仙桃市| 格尔木市| 德安县|