C# C“为什么我得到”;未处理的异常:System.FormatException:输入字符串的格式不正确;当我使用TryParse时?

C# C“为什么我得到”;未处理的异常:System.FormatException:输入字符串的格式不正确;当我使用TryParse时?,c#,input,unhandled-exception,C#,Input,Unhandled Exception,我得到“未处理的异常:System.FormatException:输入字符串的格式不正确。”但实际上我用TryParse捕获了异常 using System; using System.Linq; using System.Collections.Generic; class MinAndMax { static void Main() { // Task 3 - Write a program that reads from the console

我得到“未处理的异常:System.FormatException:输入字符串的格式不正确。”但实际上我用TryParse捕获了异常

using System;
using System.Linq;
using System.Collections.Generic;

class MinAndMax
{
    static void Main()
    {
        // Task 3 - Write a program that reads from the console
        // a sequence of N integer numbers and returns the minimal
        // and maximal of them.

        int n;
        double num = 0, counter = 0, minNum = 0, maxNum = 0;
        List<double> numbers = new List<double>();

        Console.Write("How many numbers will you enter: ");
        bool isNum = int.TryParse(Console.ReadLine(), out n);

        if (isNum)
        {
            for (counter = 1; counter <= n; counter++)
            {
                Console.Write("Enter number {}: ", counter);
                bool isValid = double.TryParse(Console.ReadLine(), out num);

                if (isValid == false)
                {
                    Console.WriteLine("Invalid input!");
                }
                else
                {
                    numbers.Add(num);
                }
        }

        minNum = numbers.Max();
        maxNum = numbers.Min();

        Console.WriteLine("The maximal of the numbers is: " + maxNum);
        Console.WriteLine("The minimal of the numbers is: " + minNum);
        }
        else
        {
            Console.WriteLine("Invalid input!");
        }
    }
}
使用系统;
使用System.Linq;
使用System.Collections.Generic;
米南德马克斯级
{
静态void Main()
{
//任务3-编写从控制台读取的程序
//由N个整数组成的序列,并返回最小值
//其中最大的。
int n;
double num=0,counter=0,minNum=0,maxNum=0;
列表编号=新列表();
控制台。写下(“您将输入多少个数字:”);
bool isNum=int.TryParse(Console.ReadLine(),out n);
if(isNum)
{
对于(计数器=1;计数器行

Console.Write("Enter number {}: ", counter);
将引发异常,您应该将其更改为

Console.Write("Enter number {0}: ", counter);
线路

Console.Write("Enter number {}: ", counter);
将引发异常,您应该将其更改为

Console.Write("Enter number {0}: ", counter);

导致错误消息的是您的格式字符串。请在括号之间放置索引:

Console.Write("Enter number {0}: ", counter);

导致错误消息的是您的格式字符串。请在括号之间放置索引:

Console.Write("Enter number {0}: ", counter);

除了先前海报已经修复的
控制台.Write
错误之外,如果用户只输入字符串,因为
数字
列表将为空,您还将在此处获得
系统.InvalidOperationException

minNum = numbers.Max();
maxNum = numbers.Min();

除了先前海报已经修复的
控制台.Write
错误之外,如果用户只输入字符串,因为
数字
列表将为空,您还将在此处获得
系统.InvalidOperationException

minNum = numbers.Max();
maxNum = numbers.Min();

异常可能由
Console.Write(“输入编号{}:”,计数器)引发;
异常可能由
Console.Write(“输入编号{}:”,计数器)引发
显然..我怎么可能没有看到!非常愚蠢的错误..非常感谢!显然..我怎么可能没有看到!非常愚蠢的错误..非常感谢!是的,你是对的,我把minNum=numbers.Max();maxNum=numbers.Min();放在else块中。是的,你是对的,我把minNum=numbers.Max();maxNum=numbers.Min();在else街区。