c # Параметр объекта загадочным образом очищается после назначения параметра - PullRequest
0 голосов
/ 18 октября 2018

Я новичок в C #.Я хочу собрать все очки за действие Paint в событии MouseUp.После передачи параметров из aPaintAction2 в Actions2 я очищаю содержимое aPaintAction2.Каким-то образом после очистки содержимого aPaintAction2 значение параметра в Actions2 (переданное aPaintAction2) также очищается.

Может кто-нибудь объяснить мне, что это за проблема и почему это происходит?Я просто хочу передать баллы, которые aPaintAction2 удерживает в Actions2, Actions2 сохраняет параметры точек и очищает aPaintAction2, чтобы aPaintAction2 мог содержать новые точки.Спасибо.

    private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
    {
        if (moving && x != -1 && y != -1)
        {
            aPaintAction2.Add(e.Location);
            x = e.X;
            y = e.Y;
        }
    }

    private List<AnnotationAction> Actions2 = new List<AnnotationAction>();
    private List<Point> aPaintAction2 = new List<Point>();
    private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
    {
        // save a Paint action
        Actions2.Add(new AnnotationAction(newActionId, pen.Color, pen.Width, aPaintAction2));

        aPaintAction2.Clear();

        moving = false;
        x = -1;
        y = -1;
        newActionId++;
    }

1 Ответ

0 голосов
/ 18 октября 2018

Вместо

aPaintAction2.Clear();

, который удаляет все элементы из списка, попробуйте:

aPaintAction2 = new List<Point>();

, который создаст новый пустой список, но оставит старый список в действиях.

...