C#ReadLine转换问题

时间:2014-10-04 04:48:15

标签: c#

我是C#的新手,我正在处理文本格式化。我稍微离开了课程计划,以格式化用户输入的电话号码。虽然程序编译并运行,但在输入内容时会崩溃。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Strings
{
   class Program
   {
       static void Main(string[] args)
       {
           int PhoneNumber = Convert.ToInt32(Console.ReadLine());

           string myString = string.Format("Phone Number: {0:(###) ###-####}", PhoneNumber);

           Console.WriteLine(myString);
           Console.ReadLine();
        }
   }
}

1 个答案:

答案 0 :(得分:1)

您的代码存在的问题是,intInt32)的最大值为2147483647,可能小于您输入的电话号码,导致其崩溃{ {1}}。

OverflowException更改为int

long

但我建议阅读并将电话号码保留在long PhoneNumber = Convert.ToInt64(Console.ReadLine()); string myString = string.Format("Phone Number: {0:(###) ###-####}", PhoneNumber); Console.WriteLine(myString); Console.ReadLine(); ,因为整数作为数据类型并不合理。