Присвоение ID пользователю

101
17 декабря 2020, 10:00

подскажите кто разбирается в чем проблема, присваиваю ID пользователю в классе User, программно ID присваивается нормально, но как создаю нового происходит что-то неясное, у User ID через 1, у Awards следующее значение после 5 вообще 15, помогите пожалуйста, все перепробовал, очень буду благодарен.

ID в классе User:

private static int _uniqueId = 0;
    public User()
    {
        ID = _uniqueId;
        _uniqueId++;
    }

ID в классе Awards

private static int _uniqueId = 0;
    public Awards()
    {
        ID = _uniqueId;
        _uniqueId++;
    }

Создание объектов классов:

private void MainForm_Load(object sender, EventArgs e)
    {
        _awards.Add(new Awards() { Title = "Emmy", Description = "Американская телевизионная премия" });
        _awards.Add(new Awards() { Title = "Grammy", Description = "Музыкальная премия Американской академии звукозаписи" });
        _awards.Add(new Awards() { Title = "Oskar", Description = "Премия Американской академии кинематографических искусств и наук" });
        _awards.Add(new Awards() { Title = "Tony", Description = "Театральная премия" });
        _awards.Add(new Awards() { Title = "Премия Дарвина", Description = "Неофициальная премия, присуждаемая комиссией людям лишившим себя наследства по своей глупости и неосторожности" });
        dgvAwards.DataSource = _awards;
        _users.Add(new User()
        {
            Name = "Денис",
            LastName = "Евдокименко",
            BirthDate = new DateTime(1996, 11, 07),
            Listawards = new List<Awards> { _awards[0], _awards[1], _awards[2], _awards[3], _awards[4] }
        });
        _users.Add(new User()
        {
            Name = "Виталий",
            LastName = "Астахов",
            BirthDate = new DateTime(1993, 05, 01),
            Listawards = new List<Awards> {  }
        });
        _users.Add(new User()
        {
            Name = "Петр",
            LastName = "Василенко",
            BirthDate = new DateTime(1995, 12, 12),
            Listawards = new List<Awards> {  }
        });
        _users.Add(new User()
        {
            Name = "Влад",
            LastName = "Акумов",
            BirthDate = new DateTime(1990, 04, 22),
            Listawards = new List<Awards> {  }
        });
        _users.Add(new User()
        {
            Name = "Семен",
            LastName = "Амелькин",
            BirthDate = new DateTime(1998, 02, 19),
            Listawards = new List<Awards> {  }
        });
        _users.Add(new User()
        {
            Name = "Герман",
            LastName = "Алтуфьев",
            BirthDate = new DateTime(2004, 03, 18),
            Listawards = new List<Awards> {  }
        });
        _users.Add(new User()
        {
            Name = "Евгений",
            LastName = "Парфенов",
            BirthDate = new DateTime(1994, 01, 01),
            Listawards = new List<Awards> { }
        });
        dgvUsers.DataSource = _users;
        dgvUsers.AllowUserToAddRows = false;
        dgvAwards.AllowUserToAddRows = false;
    }

Answer 1

У Вас поле _uniqueId статическое, в конструкторе оно увеличивается на 1.

Код

_awards.Add(new Awards() { Title = "Emmy", Description = "Американская телевизионная премия" });

автоматически добавляет объект класса в коллекцию, здесь все нормально.

Предполагаю, что где-то в коде Вы просто создаете объекты этих классов без добавления в коллекцию, то ID все-равно увеличивается.

Что-то типа:

Awards award = new Awards() { Title = "New", Description = "NewDescription" }; 

Думаю проблема заключается именно в этом.

READ ALSO
Перемещение объекта

Перемещение объекта

В Unity есть много способов перемещать объектВ чем различие между этими подходами?

116
RSASSA-PSS подпись с хэш функциейSHA256

RSASSA-PSS подпись с хэш функциейSHA256

Пытаюсь реализовать данный алгоритм 2 способами

122
Как отфильтровать List&lt;T&gt;

Как отфильтровать List<T>

Есть checkedlistboxВ нем несколько строк (см

106
Не получается добавить foreign key

Не получается добавить foreign key

Не добавляется foreing keyПроверил столбцы на null,таблицы пустые,типы подходят,длина тоже Уже не знаю что делать,завтра курсовая

143