WTF错误C#:';Semestralwork.Teleport';不包含接受2个参数的构造函数;传送有两个参数

WTF错误C#:';Semestralwork.Teleport';不包含接受2个参数的构造函数;传送有两个参数,c#,visual-studio-2010,C#,Visual Studio 2010,“有趣”的事情发生了: 注:Vector3是结构3xfloat坐标x,y,z class Teleport { Vector3 currentPosition; Vector3 destinationPosition; Teleport(Vector3 currentPosition, Vector3 destinationPosition) { this.currentPositon = curren


“有趣”的事情发生了:
注:Vector3是结构3xfloat坐标x,y,z

class Teleport {

        Vector3 currentPosition;
        Vector3 destinationPosition;

        Teleport(Vector3 currentPosition, Vector3 destinationPosition) 
        {
            this.currentPositon = currentPositon;
            this.destinationPosition = destinationPosition;

            //...
        }
}
当我从另一个类中转换此代码时,我们遇到了一个问题:
注:阵列传送位置和目的位置为Vector3[] 而且它们不是空的

Teleport[] teleportList = new Teleport[NUMBER_OF_TELEPORTS]

 for (int i = 0; i < NUMBER_OF_TELEPORTS; i++) 
            {
                Vector3 actual = teleportPositons[i];
                Vector3 dest = destinatonPositions[i];
                teleportList[i] = new Teleport(actual,dest); //there is the problem
            }
Teleport[]传送列表=新传送[传送次数]
对于(int i=0;i<远程传送的数量;i++)
{
向量3实际=隐形传态[i];
Vector3 dest=目标位置[i];
传送列表[i]=新传送(实际,目标);//有问题
}
VisualStudio说:'Semestralwork.Teleport'不包含接受2个参数的构造函数。 Semestralwork是一个名称空间,所有类都在此名称空间中。
我不明白,但我觉得我还能数到二://

现在有人吗?
谢谢。

事实上,我认为你的问题在于这一行:

Vector3 teleportList = new Teleport[NUMBER_OF_TELEPORTS]
您创建了一个名为
teleportList
的变量,类型为
Vector3
,您试图将其实例化为
Teleport
对象数组

难道不是:

Teleport[] teleportList = new Teleport[NUMBER_OF_TELEPORTS];

事实上,我认为你的问题在于这一行:

Vector3 teleportList = new Teleport[NUMBER_OF_TELEPORTS]
您创建了一个名为
teleportList
的变量,类型为
Vector3
,您试图将其实例化为
Teleport
对象数组

难道不是:

Teleport[] teleportList = new Teleport[NUMBER_OF_TELEPORTS];

构造函数的默认访问修饰符将其列为private,这意味着只能从
Teleport
类中访问它。您希望它是
public
(或
internal
,它基本上基于类的访问修饰符,默认为
internal
),如下所示:

class Teleport {
    public Teleport(Vector3 currentPosition, Vector3 destinationPosition) 
    {
        //...
    }
}

构造函数的默认访问修饰符将其列为private,这意味着只能从
Teleport
类中访问它。您希望它是
public
(或
internal
,它基本上基于类的访问修饰符,默认为
internal
),如下所示:

class Teleport {
    public Teleport(Vector3 currentPosition, Vector3 destinationPosition) 
    {
        //...
    }
}

Sry,我的错。。我翻译了我的代码并在这里重写了我的代码。。我会编辑我的问题,我有你们提到的传送类型的传送列表。。所以这不是问题……请确保您的代码是逐字复制的,而不是“翻译”的,以便发现错误。即使是最小的语法差异(例如,您是否使用[i]?)来取消对两个数组的引用)也很容易被忽略。Sry,我的错。。我翻译了我的代码并在这里重写了我的代码。。我会编辑我的问题,我有你们提到的传送类型的传送列表。。所以这不是问题……请确保您的代码是逐字复制的,而不是“翻译”的,以便发现错误。即使是最小的语法差异(例如,您是否使用[i]?)解除对两个数组的引用)也很容易被忽略。我认为错误中缺少一个词:“Semestralwork.Teleport”不包含?这需要两个参数。还是错误真的这么说?谢谢。缺少“构造函数”。Sry,工作太多,睡眠不足。问题被编辑为正确的,现在也已经解决了:)gnI认为错误中缺少一个词:“Semestralwork.Teleport”不包含?这需要两个参数。还是错误真的这么说?谢谢。缺少“构造函数”。Sry,工作太多,睡眠不足。问题编辑正确,现在也已经解决:)谢谢,问题解决了。我没有看到:D 5:32在晚上-该睡一会儿了。我很高兴我已经消除了这个愚蠢的错误:)谢谢,问题解决了。我没有看到:D 5:32在晚上-该睡一会儿了。我很高兴我已经消除了这个愚蠢的错误:)