在构造函数中传递相同类型的多个参数的更简单方法?

时间:2014-01-29 17:41:20

标签: c# types parameters constructor xna

这是我必须做的事情;

public weapon(Texture2D knife, Texture2D pistol, Texture2D smg, Texture2D rifle,
SoundEffect knifeStab, SoundEffect pistolShot, SoundEffect smgShot, SoundEffect rifleShot)
{
}

这是我真正想做的事情;

public weapon(Texture2D [knife, pistol, smg, rifle], 
SoundEffect [knifeStab, pistolShot, smgShot, rifleShot])
{
}

有类似的东西吗? 将它们全部发送到Texture2D的列表/数组中会更容易吗?

1 个答案:

答案 0 :(得分:1)

当你将多个参数传递给一个方法时,你基本上都说所有这些对于该方法都很重要,但在其他方面却不相关。如果是这种情况,请务必传递您需要的参数数量。

但是,在许多情况下,参数是相关的。在你的例子中,我想象纹理和声音效果成对出现。如果是这种情况,您可以使用封装来表达这一点。

这不仅可以减少参数的数量,还可以将相关数据保存在一起。