收到错误:无法将类型"字符串"隐式转换为"int"



我是新手。我正试图通过编写简单的代码来提高自己。我只是遇到了这样的错误,而编写代码从用户检索数据。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FuelCalc
{
internal class Program
{
static void Main(string[] args)
{
//readline
Console.WriteLine("Lütfen size hitap edebilmem için adınız ve soyadınızı giriniz...");
string namesurn= Console.ReadLine();
Console.WriteLine("Merhaba " + namesurn +" lütfen aracınızın ortalama yakıt tüketimini giriniz...");
int yakit = Console.ReadLine();
Console.ReadLine();
}
}
}

您可以尝试添加一个循环来重复,直到用户输入一个数字。int。如果从Console.ReadLine()返回的字符串可以解释为int,那么TryParse方法将返回true,并且在这种情况下您将拥有yakit的值。否则,请用户重试。

(我依靠谷歌翻译在这里留下我的评论,如果我做错了什么!)

static void Main(string[] args)
{
//readline
Console.WriteLine("Lütfen size hitap edebilmem için adınız ve soyadınızı giriniz...");
string namesurn = Console.ReadLine();
Console.WriteLine("Merhaba " + namesurn + " lütfen aracınızın ortalama yakıt tüketimini giriniz...");
// Loop until a valid int is received.
while(true)
{
if(int.TryParse(Console.ReadLine(), out int yakit))
{
Console.WriteLine($"{yakit} alınan");
break;
}
else
{
Console.WriteLine("Numara gerekli");
}
}
Console.ReadLine();
}

如果用户输入一个小数点字符,如"40.9",你可以考虑使用floatdouble而不是int。在这种情况下,您可以替换为:

float.TryParse(Console.ReadLine(), out float yakit)