我将代码从c ++转换为c#,现在我遇到了这个问题,因此我无法达到我必须达到的功能。
public struct TargetList_t
{
public float Distance;
public float[] AimbotAngle = new float[3];
public float[] aimbotAngle = new float[3];
public float[] myCoords = new float[3];
public float[] enemyCoords = new float[3];
public TargetList_t(float[] aimbotAngle, float[] myCoords, float[] enemyCoords)
{
Distance = Get3dDistance(myCoords[0], myCoords[1], myCoords[3], enemyCoords[0], enemyCoords[1], enemyCoords[2]);
AimbotAngle[0] = aimbotAngle[0];
AimbotAngle[1] = aimbotAngle[1];
AimbotAngle[2] = aimbotAngle[2];
}
};
这是我的班级。
TargetList_t TargList;
这就是我试图达到的目的。
答案 0 :(得分:1)
在C ++中,您可以通过
调用默认构造函数TargetList_t TargList;
在C#中,您始终希望使用new
关键字:
// init your constructor parameters
float[] aimbotAngle = new float[1];
float[] myCoords = new float[1];
float[] enemyCoords = new float[1];
// call constructor
var targList = new TargetList_t(aimbotAngle , myCoords , enemyCoords);
注意:
struct
更改为class
,因为这是(可辩解地)它的样子type
,int
或其他什么,在C#中你通常不这样做,所以你的类名应该是{{1 }}。此外,TargetList
是.Net框架中的一个众所周知的类,所以我希望这个类要么从它派生,要么我会从名称中删除List单词,如List
= > TargetList_t
使用公共属性
代替公共字段 Targets
=> public float Distance;