什么时候使用 int.Parse?
When to use int.Parse?
请问为什么我们需要在第一个示例中使用 int.Parse
而在第二个示例中不用?
第一个示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
namespace Test
{
public class Program
{
public static void Main(string[] args)
{
string name = Console.ReadLine();
int age= int.Parse(Console.ReadLine());
Console.WriteLine("Name:"+ name);
Console.WriteLine("Age:"+ age);
}
}
}
第二个例子:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
namespace Test
{
public class Program
{
public static void Main(string[] args)
{
int age = 20;
Console.Write(age);
}
}
}
在第一部分中,您必须将来自命令行的输入(字符串)转换为整数。在第二个中,您已经声明了一个整数,因此无需解析它。
虽然 是正确的,但我认为在第一个代码片段中对 int.Parse
的调用也是多余的。您使用它将输入的字符串转换为 int
,然后在连接时将其转换回字符串。如果你真的对输入的年龄做了一些计算,确实需要解析。
在第一个示例中,您接收到一个字符串作为控制台输入。因为没有从 int
到 string
的隐式转换,所以您必须显式地将字符串解析为 int
才能将其分配给 integer
.[= 类型的变量24=]
在第二个示例中,您不需要显式解析任何内容,因为 C# 正在内部调用 int
的 ToString()
方法。所以在内部也会发生转换,但你不必明确地进行。这与调用
相同
Console.Write(age.ToString());
喜欢评论中的@Damien_The_Unbeliever。在解析控制台输入时,您希望使用 int.TryParse()
来避免在接收非整数值作为输入时出现任何异常。这看起来像这样:
if(!int.TryParse(Console.ReadLine(), out int age))
{
Console.WriteLine("Wrong input format");
}
else
{
// Do something with age (of type int)
Console.WriteLine($"Age: {age}");
}
请问为什么我们需要在第一个示例中使用 int.Parse
而在第二个示例中不用?
第一个示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
namespace Test
{
public class Program
{
public static void Main(string[] args)
{
string name = Console.ReadLine();
int age= int.Parse(Console.ReadLine());
Console.WriteLine("Name:"+ name);
Console.WriteLine("Age:"+ age);
}
}
}
第二个例子:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
namespace Test
{
public class Program
{
public static void Main(string[] args)
{
int age = 20;
Console.Write(age);
}
}
}
在第一部分中,您必须将来自命令行的输入(字符串)转换为整数。在第二个中,您已经声明了一个整数,因此无需解析它。
虽然 int.Parse
的调用也是多余的。您使用它将输入的字符串转换为 int
,然后在连接时将其转换回字符串。如果你真的对输入的年龄做了一些计算,确实需要解析。
在第一个示例中,您接收到一个字符串作为控制台输入。因为没有从 int
到 string
的隐式转换,所以您必须显式地将字符串解析为 int
才能将其分配给 integer
.[= 类型的变量24=]
在第二个示例中,您不需要显式解析任何内容,因为 C# 正在内部调用 int
的 ToString()
方法。所以在内部也会发生转换,但你不必明确地进行。这与调用
Console.Write(age.ToString());
喜欢评论中的@Damien_The_Unbeliever。在解析控制台输入时,您希望使用 int.TryParse()
来避免在接收非整数值作为输入时出现任何异常。这看起来像这样:
if(!int.TryParse(Console.ReadLine(), out int age))
{
Console.WriteLine("Wrong input format");
}
else
{
// Do something with age (of type int)
Console.WriteLine($"Age: {age}");
}