将多个数字放在多个 int 变量中还是放在一个 int[] 数组中更好?

Is it better to put multiple numbers in multiple int vars or in one int[] array?

只是想知道,因为我经常发现自己给出坐标 (X, Y) 之类的输入,并且想知道哪种情况更好。 如果我将 3 个 int 存储在一个数组中,我可以将代码减少到 1/3,但是是否有更多理由更喜欢数组而不是多个变量?

举例说明:

int[] coord = new int[2];
coord[0] = 3;
coord[1] = 2;

int x = 3;
int y = 2;

我想说的是,如果坐标耦合得如此紧密以至于你总是将它们一起传递(我相信这是真的),你可以创建一个结构来封装它们。

public struct Coords
{
    private int x;
    private int y;

    public Coords(int x, int y)
    {
        this.x = x;
        this.y = y;
    }

    public int X
    {
        get { return x; }
    }

    public int Y
    {
        get { return y; }
    }
}

在这种情况下你可以这样传递:

var c = new Coords(1, 2);
MyMethod(c);

你的问题附有优化标签,但如果问题对你的应用程序的性能不是很重要,我会在纳秒内选择 readability/design。

这有点取决于您使用这些值的目的。

如果您持有大量的价值观,例如在游戏中,您应该让您自己和其他编码人员易于阅读,并阐明价值观的含义。

你不应该在一个数组中保存很多值,比如 HP、MP、速度、旋转、高度、宽度……而不是说明它们是什么。

但是你应该说HP=100; MP=80, ... 在这种情况下,几乎每次都会出现 'player' class。 class 包含 player.hitpoints、player.magicpoints、player.speed、...

但是对于坐标,我认为程序员使用的是带有 x、y(有时还有 z)坐标的数组。