Удаление экземпляра объекта в C#C#

Место общения программистов C#
Ответить
Anonymous
 Удаление экземпляра объекта в C#

Сообщение Anonymous »

Я пытаюсь создать игру для проекта (я использую Visual Studio и приложение Windows Forms, работающее на .NET Framework).
Я хочу иметь возможность удалять пуля после того, как она коснулась компонента стены:
private void bullet_Tick(object sender, EventArgs e)
{
foreach (Bullet bullet in BulletList)
{
foreach(var wall in wallList)
{
if (bullet.BulletPictureBox.Bounds.IntersectsWith(wall.Bounds))
{
// method to destroy the bullet object
}
}
}
}

Я пробовал такие методы, как Dispose, но кажется, что они только удаляют графический блок, делая пулю невидимой, но все же способной проходить сквозь стены. Я пробовал Bullet = null;, но получаю ошибку.

Невозможно назначить маркер, поскольку он предназначен для каждой итерации переменной.

Я знаю, что это связано с тем, что foreach является методом только для чтения.
Мне интересно, есть ли метод, который я пропустил, или мне следует прекратить использование метода foreach (Я знаю, что можно было бы упростить задачу, используя теги). Или мне нужно что-то изменить в моем классе маркеров:
public class Bullet
{
public PictureBox BulletPictureBox { get; private set; }

string DREC;

public Bullet(Form form, int x, int y, List BulletList, string direction)
{
BulletPictureBox = new PictureBox
{
Size = new Size(10, 10),
BackColor = Color.Red,
Location = new Point(x, y)
};

DREC = direction;

form.Controls.Add(BulletPictureBox);
BulletList.Add(this);
}

public string GetDirection()
{
return DREC;
}
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... in-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»