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

时间:2015-10-10 17:59:35

标签: c# arrays optimization int

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

澄清的例子:

int x = 3;
int y = 2;

ShowSettingsDialog

2 个答案:

答案 0 :(得分:4)

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

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);

您的问题附有优化标记,但如果问题对您的应用程序的性能不是很重要,那么我的可读性/设计将超过纳秒。

答案 1 :(得分:0)

它取决于您使用的值。

如果您持有大量的价值观,比如在游戏中,您应该让自己和其他程序员可以轻松阅读,并澄清价值的含义。

你不应该在一个阵列中持有许多值,比如说HP,MP,速度,旋转,高度,宽度......而不是澄清它们是什么。

但你应该说HP = 100; MP = 80,...... 在这种情况下,几乎每次都是“玩家”。虽然上课。 该类包含player.hitpoints,player.magicpoints,player.speed,...

但是对于坐标,我认为程序员使用的是具有x,y(和某些时间z)坐标的数组。