在课堂上达到班级功能?

时间:2014-07-15 10:08:20

标签: c# c++ class

我将代码从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;

这就是我试图达到的目的。

1 个答案:

答案 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,因为这是(可辩解地)它的样子
  • 在C ++中你会添加后缀或前缀,说它是typeint或其他什么,在C#中你通常不这样做,所以你的类名应该是{{1 }}。此外,TargetList是.Net框架中的一个众所周知的类,所以我希望这个类要么从它派生,要么我会从名称中删除List单词,如List = > TargetList_t
  • 使用公共属性

    代替公共字段

    Targets => public float Distance;