c# – 什么是C中的数组^ T以及如何从数组中提取值?
发布时间:2020-12-15 21:01:51 所属栏目:百科 来源:网络整理
导读:我将一个C#对象数组传递给托管C DLL. C#类定义如下: public class LatLonPointType { public double Lat; // Latitude. public double Lon; // Longitude. } 我将一个LatLonPointTypes数组传递给托管C DLL中的函数.通过反复试验,我发现我可以使用声明为的函
我将一个C#对象数组传递给托管C DLL. C#类定义如下:
public class LatLonPointType { public double Lat; // Latitude. public double Lon; // Longitude. } 我将一个LatLonPointTypes数组传递给托管C DLL中的函数.通过反复试验,我发现我可以使用声明为的函数参数将其传递给C函数: array <LatLonPointType^> ^PolygonPoints 以下C代码将提取LatLonPointType ^类型的元素. LatLonPointType ^a = PolygonPoints[0]; 我的问题是: >我多年前使用过C,这似乎与参考声明相似. ^有一个很好的参考? 澄清: 如果我有: LatLonPointType ^a = PolygonPoints[i]; 我怎么会得到a.Lat和a.Lon? 我会使用a-> Lat和a-> Lon? 解决方法
根据
this answer,这个帽子角色,也就是^,创建了一个托管指针,它将被垃圾收集,不一定是你.例如,如果您要使用new创建本机对象,它将如下所示:
Object* obj = new Object(); 但是,如果您要使用托管指针,则语法将更改为: MObject^ mobj = gcnew MObject(); 目前,我找不到如何将托管指针转换为对象本身,但如果要将其转换为指向该对象的非托管指针,请参阅this answer. 编辑 //Get method double i = PolygonPoints[n]->Lon; //Set method PolygonPoints[n]->Lon = number; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |