C# 无法将类型“string”隐式转换为“int”

C# 无法将类型“string”隐式转换为“int”,c#,string,C#,String,我正在写一个程序,我想让程序读一行 它给了我这个错误 无法将类型“string”隐式转换为“int” 如何将字符串转换为int?这是程序中给出错误的部分 class engineering : faculty { public engineering() \\constructor { } public int maths_grade; public override void fill_form() { Console.W

我正在写一个程序,我想让程序读一行

它给了我这个错误

无法将类型“string”隐式转换为“int”

如何将字符串转换为int?这是程序中给出错误的部分

class engineering : faculty
{
    public engineering()    \\constructor
    {
    }
    public int maths_grade;

    public override void fill_form()
    {
        Console.WriteLine("Insert Maths Grades: ");
        int maths_grade = Console.ReadLine();
    }
}
你应使用:

int maths_grade = int.Parse(Console.ReadLine());
因为ReadLine返回字符串,所以您需要解析它以获得int。但若该行不包含有效的字符串号,则会引发异常。您可以使用TryParse版本更好地检查这一点:

试一试


不能将字符串指定给int。必须将其转换。int math_grade=Convert.ToInt32Console.ReadLine;或者使用int.TryParse或int.Parse解析它。了解控制台的ReadLine的返回值是字符串。您正在尝试将数学成绩的值设置为字符串。但是数学分数是一个整数!因此,为了将字符串转换为int,您可以在下面的答案中使用convert.toint32stringcomesher或其他方法。如果您是编程新手,您可能应该学习如何在编写有关Stackoverflow的问题之前搜索错误,我真的认为这将节省您的时间。我可以根据你的标题推荐706000个结果。搜索将得到1750000个结果。拿你的pick@DarrenYoung,我刚刚在你的评论之后加上了为什么这被否决了?这是一个完全合理的方法?我怀疑有人对与第一个答案相同的答案投了反对票。。。不管是谁在做这件事,都必须停止。
string line = Console.ReadLine();
int maths_grade;
if (!int.TryParse(line, out maths_grade))
{
    // Do some kind of error handling
}
int mathsGrade;
if (int.TryParse(Console.ReadLine(), out mathsGrade))
{
     //Do something with grade
}
else
{
     //Do something to warn of invalid input.
}