Я получаю сообщение об ошибке «Указанное преобразование недействительно» при запуске кода.
Я пробовал ваш код из github
, и он работал для меня. Я подозреваю, что ваш файл Examples.txt
с последним выбором пользователя содержит недопустимые данные, поэтому вы получаете сообщение об ошибке при попытке десериализации содержащихся в нем данных. Попробуйте удалить файл, а затем создайте его снова. Я думаю, что это решит проблему.
Мой код в настоящий момент выполняет мою функцию UserInputs
дважды. Не могли бы вы помочь мне исправить это?
Проблема в том, что вы вызываете его дважды:
- первый раз - внутри метода
Main
перед вызовом метода ToFile.Serialize
; - во второй раз - внутренний метод
ToFile.Serialize
.
Чтобы решить эту проблему, вы должны переписать свой код в Main
:
ToFile.Deserialize();
var (userDifficulty, numberOfQuestions) = UserInputs();
OperationQuestionScore score = RunTest(numberOfQuestions, userDifficulty);
// 1. You should serialize data after running a test, because property
// ToFile.TotalScore can be filled only after test.
// 2. Now we pass into method Serialize three parameters: numberOfQuestions,
// score.TotalScore and userDifficulty.
ToFile.Serialize(numberOfQuestions, score.TotalScore, userDifficulty);
и внести следующие изменения к методу ToFile.Serialize
:
public static void Serialize(int numberOfQuestions, int totalScore, UserDifficulty userDifficulty)
{
// Now you can delete this line, because user input comes from method parameters.
// var (userDifficulty, numberOfQuestions) = UserInputs();
// And then serialize values: numberOfQuestions, totalScore, userDifficulty.
...
}