public static unsafe void *LastElement(this UnmanagedArrayBase array) { var last = (void *)(array.Header + (array.ByteLength - array.ByteLength / array.Length)); return(last); }
/// <summary> /// 获取非托管数组的最后一个元素的地址再向后一个单位的地址。 /// </summary> /// <param name="array"></param> /// <returns></returns> public static unsafe void *TailAddress(this UnmanagedArrayBase array) { var tail = (void *)(array.Header + array.ByteLength); return(tail); }
///// <summary> ///// 错误 1 无法获取托管类型(“T”)的地址和大小,或无法声明指向它的指针 C:\Users\威\Documents\GitHub\CSharpGL\Utilities\UnmanagedArrayHelper.cs 16 33 Utilities ///// </summary> ///// <typeparam name="T"></typeparam> ///// <param name="array"></param> ///// <returns></returns> //public static unsafe T* FirstElement<T>(this UnmanagedArray<T> array) where T : struct //{ // var header = (void*)array.Header; // return (T*)header; //} /// <summary> /// 获取非托管数组的第一个元素的地址。 /// </summary> /// <param name="array"></param> /// <returns></returns> public static unsafe void *FirstElement(this UnmanagedArrayBase array) { var header = (void *)array.Header; return(header); }