Что я делаю: Я пытаюсь построить словарь в одной функции (DictionaryBuilder
), извлечь строку из указанного словаря и применить переменные к ней в другой функции (QuestionGenerator
). Таким образом, каждый раз, когда вызывается QuestionBuilder
, одна и та же строка будет возвращаться с различным содержанием без необходимости повторного преобразования одного и того же словаря.
int a;
int b;
string theQuestion;
string theAnswer;
Dictionary<string, string> questionDict = new Dictionary<string, string>();
void DictionaryBuilder()
{
questionDict.Add("0", $"What is {a} x {b} ?");
questionDict.Add("1", $"The sum of {a} x {b} = {a*b}");
}
void QuestionGenerator()
{
Random rnd = new Random();
a = rnd.Next(1, 10);
b = rnd.Next(1, 10);
theQuestion = questionDict["0"];
theAnswer = questionDict["1"];
Console.WriteLine(theQuestion);
Console.WriteLine(theAnswer);
}
Текущие результаты:"Что такое 0 x 0?» и «сумма 0 и 0 равна 0». Я не могу получить новые числа, которые будут применены.
Вопрос: Как мне сделать эту работу, чтобы я мог создавать словарь и переменные отдельно, чтобы каждый раз QuestionGenerator
называется новый вопрос того же формата, предоставляется без необходимости многократно перестраивать словарь (который я считаю очень неэффективным)?
QuestionGenerator
вызывается нажатием кнопки, чтобы генерировать новый вопрос в том же формате.
(Обратите внимание: фактический словарь и вычисления будут намного больше, более сложными, а вопросы и ответы не будут в одном словаре - это было только для пример простоты.)