C# - 编写自定义的Convert.ToInt函数/方法

时间:2013-11-19 10:59:40

标签: c# function methods

嘿伙计这是我到目前为止所得到的:

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");
    }
}

提前致谢。

2 个答案:

答案 0 :(得分:2)

删除第一个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");
    }
}

答案 1 :(得分: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");
}