簡體   English   中英

什么時候使用 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);
        }
    }
}

感謝您的所有回答。

在第一部分中,您必須將來自命令行的輸入(字符串)轉換為整數。 在第二個中,您已經聲明了一個整數,因此無需解析它。

雖然Kektuto 的回答是正確的,但我想說在第一個代碼片段中對int.Parse的調用也是多余的。 您使用它將輸入的字符串轉換為int ,然后在連接它時將其轉換回字符串。 如果您實際上對輸入的年齡進行了一些計算,則確實需要解析。

在第一個示例中,您將收到一個字符串作為控制台輸入。 因為沒有從intstring隱式轉換,您必須將字符串顯式解析為int才能將其分配給integer類型的變量。
在第二個示例中,您不需要顯式解析任何內容,因為 C# 在內部調用intToString()方法。 因此,在內部也發生了轉換,但您不必明確地進行轉換。 這將與調用相同

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM