[英]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);
}
}
}
感謝您的所有回答。
在第一部分中,您必須將來自命令行的輸入(字符串)轉換為整數。 在第二個中,您已經聲明了一個整數,因此無需解析它。
雖然Kektuto 的回答是正確的,但我想說在第一個代碼片段中對int.Parse
的調用也是多余的。 您使用它將輸入的字符串轉換為int
,然后在連接它時將其轉換回字符串。 如果您實際上對輸入的年齡進行了一些計算,則確實需要解析。
在第一個示例中,您將收到一個字符串作為控制台輸入。 因為沒有從int
到string
隱式轉換,您必須將字符串顯式解析為int
才能將其分配給integer
類型的變量。
在第二個示例中,您不需要顯式解析任何內容,因為 C# 在內部調用int
的ToString()
方法。 因此,在內部也發生了轉換,但您不必明確地進行轉換。 這將與調用相同
Console.Write(age.ToString());
就像評論中所說的@Damien_The_Unbeliever。 在解析控制台輸入時,您希望使用int.TryParse()
來避免在接收非整數值作為輸入時出現任何異常。 這看起來像這樣:
int age;
if(!int.TryParse(Console.ReadLine()), out age)
{
Console.WriteLine("Wrong input format");
}
else
{
// Do something
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.