我正在做作业,但在做这件事时出现了一些问题。我正在将字符串值解析为Int32,然后将其连接到字符串。任务是获得用户的年龄,并在10年内给他他的年龄。
但是,当我尝试将var age添加到字符串时,它不会作为int而是作为字符串保留。这里:Console.WriteLine("你10年后的年龄将是:" +年龄+10);这输出2210而不是32。
如果我只打印var age + 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);
}
}
}
答案 0 :(得分:3)
这看起来是一个运算符优先级问题,因为在将FirstName添加到字符串之前将其添加到字符串中。
Console.WriteLine("Your age in 10 years will be: " +(FirstName + 10));
答案 1 :(得分:1)
在使用字符串连接时添加int值时使用()
Console.WriteLine("Your age in 10 years will be: "+ (FirstName + 10));
答案 2 :(得分:1)
更改为:
Console.WriteLine("Your age in 10 years will be: "+ (age+ 10));
因为Console.WriteLine("Your age in 10 years will be: "+ age + 10);
会将年龄自动转换为String =“10”+“10”=“1010”