Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 字符串不';当与字符串连接时,不能解析为Int32_C#_String_Parsing - Fatal编程技术网

C# 字符串不';当与字符串连接时,不能解析为Int32

C# 字符串不';当与字符串连接时,不能解析为Int32,c#,string,parsing,C#,String,Parsing,我正在做作业,但在做作业的时候出了点问题。我正在将字符串值解析为Int32,然后将其连接为字符串。任务是获得用户的年龄,并在10年内给出他的年龄 但是,当我尝试将var age添加到字符串中时,它不是作为int而是作为字符串。此处:Console.WriteLine(“您10年后的年龄将是:“+age+10”);这将输出2210而不是32 如果我只打印变量年龄+10,则输出32 为什么我会得到这个结果 using System; namespace _07App { class Program

我正在做作业,但在做作业的时候出了点问题。我正在将字符串值解析为Int32,然后将其连接为字符串。任务是获得用户的年龄,并在10年内给出他的年龄

但是,当我尝试将var age添加到字符串中时,它不是作为int而是作为字符串。此处:Console.WriteLine(“您10年后的年龄将是:“+age+10”);这将输出2210而不是32

如果我只打印变量年龄+10,则输出32

为什么我会得到这个结果

using System;

namespace _07App
{
class Program
{
    static void Main()
    {
        Console.WriteLine("What is your age");
        var age = Int32.Parse(Console.ReadLine());
        Console.WriteLine("Your age in 10 years will be: "+ age + 10);
        Console.WriteLine(age + 10);
    }
  }
}

这看起来是一个运算符优先级问题,因为您的名字在添加到10之前就添加到了字符串中

Console.WriteLine("Your age in 10 years will be: " +(FirstName + 10));

这看起来是一个运算符优先级问题,因为您的名字在添加到10之前就添加到了字符串中

Console.WriteLine("Your age in 10 years will be: " +(FirstName + 10));
在使用字符串连接时添加int值时使用()

Console.WriteLine("Your age in 10 years will be: "+ (FirstName + 10));
在使用字符串连接时添加int值时使用()

Console.WriteLine("Your age in 10 years will be: "+ (FirstName + 10));
改为:

Console.WriteLine("Your age in 10 years will be: "+ (age+ 10));
因为
Console.WriteLine(“你10年后的年龄是:“+age+10”)将自动将年龄转换为String=“10”+“10”=“1010”

更改为:

Console.WriteLine("Your age in 10 years will be: "+ (age+ 10));

因为
Console.WriteLine(“你10年后的年龄是:“+age+10”)将自动将年龄转换为String=“10”+“10”=“1010”

当您在字符串后使用
+
时,c#假设您正在合并一些字符串。所以它的行为是这样的:
“你10年后的年龄将是:FirstName10”
努力修正你的命名约定
FirstName
对于某个年龄段的人来说是一个糟糕的名字。将变量
FirstName
的名称更改为
age
可能是明智的做法。我不确定否决票是为了什么,当你在字符串后使用
+
时,c#假设你正在合并一些字符串。所以它的行为是这样的:
“你10年后的年龄将是:FirstName10”
努力修正你的命名约定
FirstName
对于某人的年龄来说是一个糟糕的名字。将变量
FirstName
的名称更改为
age
可能是明智的,我不确定否决票是为了什么,这似乎是一个好的家庭作业问题