【发布时间】:2016-12-26 14:52:41
【问题描述】:
所以我正在用 c# 制作一个愚蠢的游戏,但我有点卡在这里。
我尝试返回 2 个值或 3 个值,这取决于游戏规则。
我需要知道如何仅在一个函数中返回不同数量的值。就像有时我需要在一个函数中返回 3 个值,有时是 7 个值。
错误在于变量tuple 当然,因为我不能返回少于 3 个值..
public Tuple<int, int, int> movepion(schaken.pion pion, int row, int column)
{
int row2 = row + 1;
//posities berekenen
if (pion.kleur == Color.Blue)
{
if (pion.volgnr == 0) { row++; row2++; }
else { row++; }
}
else
{
}
// declaration
var tuple = new Tuple<int, int>(row, column);
var tuple2 = new Tuple<int, int, int>(row, row2, column);
// what position?
if (pion.volgnr == 0)
{
pion.volgnr = pion.volgnr + 1;
return tuple2;
}
else
{
return tuple;
}
}
【问题讨论】:
-
你能总结一下它的用途吗? tuple 和 tuple2 的用途是什么?
-
@Thibaut 如果所有值都是 int,您是否考虑过返回数组、IEnumerable 或列表?
-
@sr28 我想做一个国际象棋游戏,所以如果我点击一个 pion,它将显示 pion 可以放置的所有不同位置。当可以放置更多位置时,我需要更多行或列。
-
@Thibaut - 这个元组是否应该代表移动选项的多样性?
-
您应该考虑使用单独的数据类型来表示棋盘上的位置,并在调用允许的移动时返回 List
。