中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

仲巴县| 永修县| 贺州市| 太保市| 彩票| 咸阳市| 榆林市| 宜州市| 青浦区| 新营市| 大田县| 息烽县| 鞍山市| 大余县| 剑阁县| 冕宁县| 扎囊县| 旬邑县| 青龙| 南皮县| 庄河市| 乐清市| 扶沟县| 太康县| 忻城县| 乐安县| 肃宁县| 康乐县| 铜川市| 胶州市| 革吉县| 镇平县| 长治县| 千阳县| 杭锦后旗| 顺平县| 自治县| 蒙山县| 明水县| 马公市| 临猗县|