在具有多个构造函数的单个 class 中使用一个对象
Using an object in a single class with multiple constructors
这是我在其中构建构造函数的 class,我想要多个 "UserKeys" 构造函数,我项目中的每个角色 1 个,但主要的 class 没有仅识别第二个构造函数(如果我有一个带 0 个参数的构造函数,它会识别第一个,但不会识别第二个)
abstract class BaseKeys
{
public abstract bool LeftPressed();
public abstract bool RightPressed();
public abstract bool UpPressed();
public abstract bool DownPressed();
public abstract bool high_hitPressed();
public abstract bool rope_jumpPressed();
public abstract bool runRightPressed();
public override bool leftRightPressed();
}
class UserKeys : BaseKeys
{
#region data
Keys left, right, up, down, walk;
Keys combo, high_hit;
#endregion
#region ctor
public UserKeys(Keys left, Keys right,
Keys up, Keys down, Keys high_hit)
{
this.left = left;
this.right = right;
this.up = up;
this.down = down;
this.high_hit = high_hit;
}
public UserKeys(Keys right, Keys left,
Keys down, Keys walk, Keys high_hit)
{
this.left = left;
this.right = right;
this.down = down;
this.high_hit = high_hit;
this.walk = walk;
}
}
两个构造函数具有相同的参数,这是行不通的。只有他们的名字不同。您需要让它们与众不同:
public UserKeys(Keys left, Keys right,
Keys up, Keys down,
Keys high_hit)
{
this.left = left;
this.right = right;
this.up = up;
this.down = down;
this.high_hit = high_hit;
}
public UserKeys(Keys left, Keys right,
Keys up, Keys down,
Keys high_hit, Keys walk)
{
this.left = left;
this.right = right;
this.up = up;
this.down = down;
this.high_hit = high_hit;
this.walk = walk;
}
我已将 Keys up
添加到第二个并使用与第一个相同的顺序(否则非常混乱且容易出错)。如果你不知道 Keys up
通过 Keys.None
.
这是我在其中构建构造函数的 class,我想要多个 "UserKeys" 构造函数,我项目中的每个角色 1 个,但主要的 class 没有仅识别第二个构造函数(如果我有一个带 0 个参数的构造函数,它会识别第一个,但不会识别第二个)
abstract class BaseKeys
{
public abstract bool LeftPressed();
public abstract bool RightPressed();
public abstract bool UpPressed();
public abstract bool DownPressed();
public abstract bool high_hitPressed();
public abstract bool rope_jumpPressed();
public abstract bool runRightPressed();
public override bool leftRightPressed();
}
class UserKeys : BaseKeys
{
#region data
Keys left, right, up, down, walk;
Keys combo, high_hit;
#endregion
#region ctor
public UserKeys(Keys left, Keys right,
Keys up, Keys down, Keys high_hit)
{
this.left = left;
this.right = right;
this.up = up;
this.down = down;
this.high_hit = high_hit;
}
public UserKeys(Keys right, Keys left,
Keys down, Keys walk, Keys high_hit)
{
this.left = left;
this.right = right;
this.down = down;
this.high_hit = high_hit;
this.walk = walk;
}
}
两个构造函数具有相同的参数,这是行不通的。只有他们的名字不同。您需要让它们与众不同:
public UserKeys(Keys left, Keys right,
Keys up, Keys down,
Keys high_hit)
{
this.left = left;
this.right = right;
this.up = up;
this.down = down;
this.high_hit = high_hit;
}
public UserKeys(Keys left, Keys right,
Keys up, Keys down,
Keys high_hit, Keys walk)
{
this.left = left;
this.right = right;
this.up = up;
this.down = down;
this.high_hit = high_hit;
this.walk = walk;
}
我已将 Keys up
添加到第二个并使用与第一个相同的顺序(否则非常混乱且容易出错)。如果你不知道 Keys up
通过 Keys.None
.