是否可以在c#中创建指针列表或数组?
我想有一个T*
的列表,而不是使用IntPtr
,因为我永远不得不在所有地方键入MarshalPtr To Structure
方法,而不是通过->
命令直接访问方法。
我试着用T*做一个列表,但是它说它不能用它作为一个类型。那么,我唯一的选择是在需要时不断地从IntPtr
转换吗?
-
可以声明一个指针数组
unsafe Vector3*[] vectorPointerArray;
-
不能像
List<Vector3*>
那样使用指针作为泛型参数,这仍在考虑之中。 -
由于可行性1,你可以创建一个集合来保存指针,尽管它不能实现像
IList<T>
这样的通用接口。unsafe class UnsafePointerList<T> where T : unmanaged { private T*[] _items; public T* this[int index] => _items[index]; } UnsafePointerList<Vector3> vectorPointerList; var x = vectorPointerList[0]->x;