使用动态名称声明类的实例

时间:2017-06-11 20:19:11

标签: c# declare

所以我创建了一个名为SnakeItem的类,我希望在蛇生长时创建蛇项的新实例,它们遵循snake_Piece_ [NUMBER]的命名约定。已经有snake_Piece_0了,我想在代码中声明一个新实例。我不知道该怎么说......

SnakeItem snake_Piece_0;
public game_Window()
{
    InitializeComponent();
    snake_Piece_0 = new SnakeItem(Resource1.Black, 0, 0);
}

然后在这个函数中,我想创建它。 (在snake_length ++之后:)我需要命名为增量,所以它遵循snake_length变量。即如果snake_length = 1,那么它将创建一个名为snake_Piece_1的片段。

 private void fruit_Collision()
 {
    if (snake_Piece_0.Top == Fruit_Item.Top && snake_Piece_0.Left == Fruit_Item.Left)
    {
       snake_Length++;
    }
  }

我不确定如果不可能我会说什么我必须事先申报所有400件蛇片,这是我试图避免的。

1 个答案:

答案 0 :(得分:0)

这是初学者常见的事情 - 尝试使用新名称动态创建新变量。我也尝试过这样做,直到我了解了List s。

List是可以存储可变数量对象的对象。以下是如何创建SnakeItem的空列表:

List<SnakeItem> snakeItems = new List<SnakeItem>();

您可以添加,访问和删除列表中的项目。以下是一些例子:

snakeItems.Add(new SnakeItem(Resource1.Black, 0, 0)); // add a new item to the list
snakeItems[0] // access the first item in the list. 0 is the first, 1 is the second, etc.
snakeItems.RemoveAt(0) // remove the first item of the list

基本上,只要您想创建一个新的变量名称&#34;,只需Add列表中的新项目:

    if (snakeItems[0].Top == Fruit_Item.Top && snakeItems[0].Left == Fruit_Item.Left)
    {
        snakeItems.Add(...);
    }

如您所见,不再需要snake_Length了!您可以使用.Count访问有多少蛇项目。将所有snake_Length替换为snakeItems.Count

详细了解列表here