newtinn Ответов: 1

Оператор '==' не может быть применен к операндам типа 'int' и 'string'


Привет, Меня зовут Мэтт, и я немного новичок в c#. Я кодировал с помощью GML(Game Making Language) и Python. Я хотел изучить новый язык программирования, поэтому начал изучать c# меньше недели назад.

Я выучил свой c# из серии учебников(Боб табор на MSDN) и хотел попробовать сделать свою собственную программу - лотерейную игру! Если вы угадаете случайно сгенерированное число от 1 до 3, то выиграете в лотерею!

Проблема, которую я получаю до сих пор, заключается в том, что оператор "= = "не может быть применен к операндам типа" int " и "string". Я знаю, что это связано с преобразованием userValue в целое число, но я не знаю, как это сделать.:

Мой код приведен ниже.

Что я уже пробовал:

Random random = new Random(); // Importing the random function
           int number = random.Next(1,3);

           // Stating the game name
           Console.WriteLine("LOTTERY GAME");
           Console.WriteLine("--------------");
           Console.WriteLine("Pick a number: 1, 2 or 3.");
           string userValue = Console.ReadLine();

           string message = (userValue == number) ? "You won the Lottery!" : "Sorry, you didn't get the right number. Better luck next time!";
           Console.WriteLine("{0} The number you typed was {1}.", message, userValue);
           Console.ReadLine();

Richard MacCutchan

Вы не можете сравнить строку с int, это совершенно разные типы. Вам нужно изучить основы языка C#.

1 Ответов

Рейтинг:
0

Richard Deeming

Воспользуйся инт.Метод tryparse[^] чтобы попытаться преобразовать string к int Вам также нужно будет учитывать случаи, когда пользователь не вводит действительный номер.

string userText = Console.ReadLine();

int userValue;
while (!int.TryParse(userText, out userValue))
{
    Console.WriteLine("Sorry, I didn't understand that.");
    Console.WriteLine("Pick a number: 1, 2 or 3.");
    userText = Console.ReadLine();
}

string message = (userValue == number) ? "You won the Lottery!" : "Sorry, you didn't get the right number. Better luck next time!";
Console.WriteLine("{0} The number you typed was {1}.", message, userValue);
Console.ReadLine();