使用动态名称声明 Class 的实例
Declare Instance of Class with Dynamic Name
所以我创建了一个名为 SnakeItem 的 Class,我想在蛇长大时创建一个新的蛇项目实例,它们遵循 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 条蛇碎片,这是我试图避免的。
这是初学者常做的事情 - 尝试动态创建具有新名称的新变量。我也尝试这样做,直到我了解 List
s.
List
s 是可以存储可变数量对象的对象。以下是创建 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
基本上,只要您想创建一个新的 "variable name",只需 Add
一个新项目到列表中:
if (snakeItems[0].Top == Fruit_Item.Top && snakeItems[0].Left == Fruit_Item.Left)
{
snakeItems.Add(...);
}
如您所见,snake_Length
不再需要了!您可以使用 .Count
访问有多少蛇项目。将所有 snake_Length
替换为 snakeItems.Count
.
了解有关列表的更多信息here。
所以我创建了一个名为 SnakeItem 的 Class,我想在蛇长大时创建一个新的蛇项目实例,它们遵循 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 条蛇碎片,这是我试图避免的。
这是初学者常做的事情 - 尝试动态创建具有新名称的新变量。我也尝试这样做,直到我了解 List
s.
List
s 是可以存储可变数量对象的对象。以下是创建 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
基本上,只要您想创建一个新的 "variable name",只需 Add
一个新项目到列表中:
if (snakeItems[0].Top == Fruit_Item.Top && snakeItems[0].Left == Fruit_Item.Left)
{
snakeItems.Add(...);
}
如您所见,snake_Length
不再需要了!您可以使用 .Count
访问有多少蛇项目。将所有 snake_Length
替换为 snakeItems.Count
.
了解有关列表的更多信息here。