Моя программа случайным образом выбирает объект (ион) из списка объектов (ионов) и позволяет пользователю вводить значения заряда и полярности, которые они считают, однако, когда я проверяю вход по значениямдля случайного объекта (иона) вместо фактических переменных принимается только первый объект в списке.Я проверил, чтобы убедиться, что переменные меняются, и даже при сопоставлении он будет принимать только заряд и полярность первого иона в списке.
this is the list of objects, ion guesser is declared outside
int IonGuesser;
public class Ion
{
public string Charge; // 1-3 no need to make int as no maths are performed
public string Polarity; // + or -
public string Name; // Self explanatory
public string Formula; // chemical formula eg OH
}
List<Ion> Ions = new List<Ion>
{
new Ion {Charge = ("1"), Polarity =("-"),Name = ("Hydroxide"), Formula = ("OH")},
new Ion {Charge = ("1"), Polarity =("+"),Name = ("Hydron"), Formula = ("H")},
new Ion {Charge = ("1"), Polarity =("+"),Name = ("Lithium"), Formula = ("Li")},
new Ion {Charge = ("1"), Polarity =("+"),Name = ("Sodium"), Formula = ("Na")},
нажатие этой кнопки вызывает случайный ион и отображаетФормула для пользователя
private void NextIonButton_Click(object sender, EventArgs e)
{
int IonGuesser = rnd.Next(Ions.Count);
var RandomIon = Ions[IonGuesser];
IonNameDisplay.Text = RandomIon.Formula;
}
ниже - это кнопка, которая должна проверять, верна она или нет, она только скажет, что заряд ("1") и полярность ("-") верны дажекогда это не так
private void IonSubmitButton_Click(object sender, EventArgs e)
{
int CorrectCounter = 0;
var RandomIon = Ions[IonGuesser];
if (ChargeDropDown.Text == RandomIon.Charge)
{
CorrectCounter++;
}
if (PolarityDropDown.Text == RandomIon.Polarity)
{
CorrectCounter++;
}
if (CorrectCounter == 2)
{
IonGuessStatus.Text = ("Correct");
}
else
{
IonGuessStatus.Text = ("Incorrect");
}
Таким образом, когда говорят, что показанная формула иона - Li, IonGuessStatus должен быть ("правильный"), когда входные данные в выпадающих списках равны (1) и (+), однако этотолько правильно говорит, когда ввод (1) и (-)