我可以知道為什么我們需要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);
}
}
}
uj5u.com熱心網友回復:
在第一個示例中,您將收到一個字串作為控制臺輸入。因為沒有從int到的隱式轉換,string您必須顯式決議字串才能int將其分配給型別為 的變數integer。
在第二個例子中,因為C#是在內部呼叫,你不需要任何決議明確ToString()的方法int。因此,在內部也發生了轉換,但您不必明確地進行轉換。這將與呼叫相同
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}");
}
uj5u.com熱心網友回復:
在第一部分中,您必須將來自命令列的輸入(字串)轉換為整數。在第二個中,您已經宣告了一個整數,因此無需決議它。
uj5u.com熱心網友回復:
雖然Kektuto 的回答是正確的,但我想說int.Parse在第一個代碼片段中對的呼叫也是多余的。您可以使用它將輸入的字串轉換為int,然后在連接時將其轉換回字串。如果您實際上對輸入的年齡進行了一些計算,則確實需要決議。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/335839.html
上一篇:在游戲中捕捉鍵盤?
