1)

class Program
{
    static void Main(string[] args)
    {
        int a;
        a = Convert.ToInt32( "a" );
        Console.Write(a);
    }
}

我收到带有消息的 FormatException : Input string was not in a correct format 。这很好理解。

2)
class Program
{
    static void Main(string[] args)
    {
        int a;
        a = Convert.ToInt32( Console.Read() );
        Console.Write(a);
    }
}

在第二种情况下,我可以输入任何字符,例如 abc 并显示在控制台中。

问题:为什么在第二种情况下不抛出 FormatException 以及为什么它可以成功处理非 int 字符?

更新

使用返回 Console.ReadLine() 类型的 string 方法,也没有删除 FormatException 并成功在控制台中打印任何字符。
class Program
{
    static void Main(string[] args)
    {
        int a;
        a = Convert.ToInt32(Console.ReadLine());
        Console.Write(a);
    }
}

最佳答案

return type of Console.Read() is an int

然后调用 Convert.ToInt32(int) :

关于c# - 当 ToInt32() 方法的参数类型无效时,不会抛出 "FormatException",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31830657/

10-09 03:10