-2

I have many int variables, blueBallVelocityX1, blueBallVelocityX2, blueBallVelocityX3, blueBallVelocityX4, blueBallVelocityX5, blueBallVelocityX6, blueBallVelocityX7, blueBallVelocityX8, blueBallVelocityX9, blueBallVelocityX10, blueBallVelocityX11, blueBallVelocityX12, blueBallVelocityX13, blueBallVelocityX14, blueBallVelocityX15, blueBallVelocityX16, blueBallVelocityX17, blueBallVelocityX18, blueBallVelocityX19, blueBallVelocityX20 and blueBallVelocityY1 (1- 20)。すべての変数に値 5 を指定する必要があります。どうすればよいですか?

4

5 に答える 5

6

arrayなどのコレクションの使用を検討する必要があります。

const int VelocityLength = 20;
const int InitialVelocity = 5;

int[] blueBallVelocityX = new int[VelocityLength];
int[] blueBallVelocityY = new int[VelocityLength];

for (int i = 0; i < VelocityLength; i++)
{
    blueBallVelocityX[i] = blueBallVelocityY[i] = InitialVelocity;
}

または:

int[] blueBallVelocityX = Enumerable.Repeat(InitialVelocity, VelocityLength).ToArray();
于 2013-07-23T08:11:11.850 に答える
1

あなたは多次元配列を探しているようです:

int[,] blueBallVelocity = new int[2,20];
for (int x = 0; x < 2; x++)
    for (int y = 0; y < 20; y++)
        blueBallVelocity[x, y] = 5;

または s の 1 次元配列Point:

Point[] blueBallVelocity = new Point[20];
for (int i = 0; i < blueBallVelocity.Length; i++) 
    blueBallVelocity[i] = new Point(5, 5);
于 2013-07-23T08:11:11.280 に答える
1

このような

blueBallVelocityX1 = 5;
blueBallVelocityX2 = 5;
// ...
blueBallVelocityX20 = 5;

あなたがすべきことはもっとこのようなものです

public class Ball
{
    public Color Color { get; set; }
    public Point Location { get; set; }
    public Vector2D Velocity { get; set; }
}


var balls = new List<Ball>(20);
for(int i = 0; i < 20; i++)
{
    balls.Add(new Ball { Location = new Point(5, 5) });
}
于 2013-07-23T08:22:30.677 に答える
0

2 つのオプションが表示されます

  1. 多くの変数を作成する代わりに、それらを配列に入れます。
  2. 上記の点が達成できない場合は、反射を使用してください。
于 2013-07-23T08:11:41.773 に答える
0
  int blueBallVelocityX1 = 5;
  //...
  int blueBallVelocityX20 = 5;

または、非常に多くの行を書くのにうんざりしている場合は、代わりに blueBallVelocity を再定義して配列にします。

  var blueBallVelocity = new int[20];
  for (var i = 0; i < blueBallVelocity.Length; i++) {
    blueBallVelocity[i] = 5;
  }
于 2013-07-23T08:12:22.123 に答える