相关疑难解决方法(0)

C#:将通用指针转换为数组

我想将a转换byte*为a byte[],但我也希望有一个可重用的函数来执行此操作:

public unsafe static T[] Create<T>(T* ptr, int length)
{
    T[] array = new T[length];

    for (int i = 0; i < length; i++)
        array[i] = ptr[i];

    return array;
}
Run Code Online (Sandbox Code Playgroud)

不幸的是我收到编译器错误,因为T可能是".NET托管类型",我们无法指向那些.更令人沮丧的是,没有泛型类型约束可以将T限制为"非托管类型".是否有内置的.NET函数来执行此操作?有任何想法吗?

c# arrays unsafe

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

arrays ×1

c# ×1

unsafe ×1