【问题标题】:C# - Writing a custom Convert.ToInt function/methodC# - 编写自定义 Convert.ToInt 函数/方法
【发布时间】:2013-11-19 10:59:39
【问题描述】:

大家好,这是我目前得到的结果:

static string ConvertToInt()
{
    string a = Console.ReadLine();
    int num = int.Parse(a);
    Console.WriteLine(num);
    if (int.TryParse(a, out num))
    {
        return a;
    }
    else
    {
        return "-1";
    }
}

我要做的是编写一个自定义的 Convert.ToInt 函数,而无需实际使用库中已有的方法。所以我尝试使用 int.Parse。如果用户输入的不是数字,它也应该返回 -1。

我的问题是,如果我输入“a”,应用程序会在调试时停止,并给出输入字符串格式不正确的错误。

在测试该方法时,我创建了一个带有以下修改的新项目:

static void Main(string[] args)
{
    string a = Console.ReadLine();
    int num = int.Parse(a);
    Console.WriteLine(num);
    if (int.TryParse(a, out num))
    {
        Console.WriteLine(a);
    }
    else
    {
        Console.WriteLine("-1");
    }
}

提前致谢。

【问题讨论】:

  • 你为什么要创建自己的?
  • 调试器永远是你最好的朋友,至少有一个调试“会话”非常感谢......

标签: c# function methods


【解决方案1】:

删除第一个Parse,保留为int num;

static void Main(string[] args)
{
    string a = Console.ReadLine();
    int num;
    if (int.TryParse(a, out num))
    {
        Console.WriteLine(a);
    }
    else
    {
        Console.WriteLine("-1");
    }
}

【讨论】:

  • @Bradolf awesome :) 你介意接受这个答案以便可以结束这个问题吗?
  • 抱歉,我认为我必须等待至少 15 分钟才能接受答案。但现在已经完成了。再次感谢:)
【解决方案2】:

问题: 当字符串格式不正确时,int.Parse() 会抛出 FormatException

解决办法:去掉int.Parse()函数,不要给num变量赋值

试试这个:

string a = Console.ReadLine();
int num;
if (int.TryParse(a, out num))
{
    Console.WriteLine(a);
}
else
{
    Console.WriteLine("-1");
}

【讨论】:

  • 你没有代码对齐?? :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 2014-05-21
  • 2019-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多