Значение "1" недопустимо для "индекса"

Это ошибка, которую я получаю, когда пытаюсь запустить свою программу. (Извините Minecraft на заднем плане, это ключевая часть того, что я пытаюсь создать)

Ошибка получена

Вот код C#, который я пытался выполнить

    int oldCount;

    string RecentPlayer;
    string val;

    public void SetBalloonTip()
    {

        NewPlayerMessage.BalloonTipTitle = "A Player Has Joined!";

        NewPlayerMessage.BalloonTipText = RecentPlayer + " has joined your server " + ConfigKey.ServerName.GetString();
        NewPlayerMessage.BalloonTipIcon = ToolTipIcon.Info;

    }

    private void PlayerListUpdates_Tick(object sender, EventArgs e)
    {
                oldCount = playerList.Items.Count - 1;
                if (oldCount < playerList.Items.Count)
                {
                    if (playerList.Items.Count > 0)
                    {
                        RecentPlayer = playerList.Items[playerList.Items.Count].ToString();

                        val = playerList.Items[playerList.Items.Count].ToString();
                        NewPlayerMessage.Visible = true;
                        SetBalloonTip();
                        NewPlayerMessage.ShowBalloonTip(50000);

                    }

                }
                else {
                    return;
        }

    }

1 ответ

Решение

Решение 1. Вам нужно помнить, что индекс Array всегда начинается с Zero и заканчивается Count-1

Заменить это:

playerList.Items[playerList.Items.Count]

С этим:

playerList.Items[playerList.Items.Count-1]

ИЛИ ЖЕ

Решение 2: просто используйте oldCount переменная, которая содержит значение playerList.Items.Count - 1

Заменить это:

playerList.Items[playerList.Items.Count]

С этим:

playerList.Items[oldCount]
Другие вопросы по тегам