Как отобразить 2 значения в текстовом поле? - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь отобразить два случайно сгенерированных числа в текстовом поле с помощью Visual Studio.

Это то, что у меня есть до сих пор ...

int RandomNumber(int min = 0, int max = 100)
            {
                Random random = new Random();
                return random.Next(min, max);
            }
            int RandomNumber2(int min = 0, int max = 100)
            {
                Random random = new Random();
                return random.Next(min, max);
            }
            txtQuestion.Enabled = true;

        string num1 = Convert.ToString(RandomNumber());
        string num2 = Convert.ToString(RandomNumber2());

        txtQuestion.Text = ("{0} + {1} = ?", num1, num2);

Однако последнее В строке появляется сообщение об ошибке «невозможно неявно преобразовать тип» (строка, строка num1, строка num2) в строку «

Как я должен выводить эти случайно сгенерированные числа в текстовое поле?

Привет ниже отредактированный код, который работает так, как мне было нужно. Спасибо за всю помощь:)

Random random1 = new Random();

Я вызвал вышеупомянутую функцию глобально, чтобы я мог обращаться к ней каждый раз, когда мне нужно новое случайное число. А ниже показано, как я использовал его в своей функции для вызова двух разных случайных чисел и отображения их в текстовом поле.

            int randomNumber1 = random1.Next(0, 10);
        int randomNumber2 = random1.Next(0, 10);

        string num1 = Convert.ToString(randomNumber1);
        string num2 = Convert.ToString(randomNumber2);

        txtQuestion.Text = string.Format ("{0} + {1} = ?", num1, num2);

1 Ответ

2 голосов
/ 13 апреля 2020

Как сказал @Джон, вы используете ValueTuple. Вы можете узнать больше о ValueTuple здесь или на MSDN. Но ссылка, которую я дал, показывает почти тот же код, что и вы.

То, что вы хотите сделать, это либо использовать строку. Формат:

txtQuestion.Text = string.Format("{0} + {1} = ?", num1, num2);

Или более кратко с интерполяцией строки:

txtQuestion.Text = $"{num1} + {num2} = ?";

И покажите ответ следующим образом:

Random random = new Random();
int nextRandom() => random.Next(0, 100);
int num1 = nextRandom();
int num2 = nextRandom();
txtQuestion.Text = $"{num1} + {num2} = {num1 + num2}";
// If you have a method that computes the result you can also call it inside
txtQuestion.Text = $"{num1} + {num2} = {SomeFunction(num1, num2)}";

Чтобы исправить вашу случайную проблему, вы должны создать случайный экземпляр только один раз.

class MyClass
{
    // Use the same instance of Random.
    private Random _random = new Random();

    public int RandomNumber()
    {
        return _random.Next(0, 100);
    }

    public void DisplayText()
    {
        int num1 = RandomNumber();
        int num2 = RandomNumber();
        txtQuestion.Text = $"{num1} + {num2} = {num1 + num2}";
    }
}
...