发生类型为'System.FormatException'的未处理的异常

安德鲁790

我试图在控制台应用程序中使用列表来存储和显示数据的方式来构建联系人管理器程序。我需要查看一个报告,该报告显示可用联系人的摘要,然后有一个菜单,允许用户与该程序进行交互。我有一种创建联系人和联系人对象的方法。我也有一种更新联系人的方法,但是我希望用户能够选择联系人的名字,姓氏,电子邮件地址,电话号码,类型,并能够使用用户输入的信息进行更新。但是,在此行中Console.WriteLine(“ \ nUpdate Contact:{1}”,contactList); 我不断收到错误:

发生未处理类型'System.FormatException'的异常,其他信息:索引(从零开始)必须大于或等于零且小于参数列表的大小。

任何指导将不胜感激。

static void Main(string[] args)
    {         
        //Declare the list

        List<Contact> contactList = new List<Contact>();

        //Main Driver
        char menuItem;
         Console.WriteLine("Contact List\n");
        menuItem = GetMenuItem();
        while (menuItem != 'Q')
        {

            ProcessMenuItem(menuItem, contactList);
            menuItem = GetMenuItem();

        }
        Console.WriteLine("\nThank you, goodbye");
        Console.ReadLine();
    }
    //Returns either a 'C', 'R', 'U', 'D', 'L', or 'X' to the caller
    static char GetMenuItem()
    {
        char menuItem;
        DisplayMenu();
        menuItem = char.ToUpper(IOConsole.GetChar("\nPlease pick an item: "));
        while (menuItem != 'C'
            && menuItem != 'R' && menuItem != 'Q' && menuItem != 'U' && menuItem != 'D' && menuItem != 'S' && menuItem != 'L' && menuItem != 'F' && menuItem != 'P' && menuItem != 'T')
        {
            Console.WriteLine("\nError - Invalid menu item");
            DisplayMenu();
            menuItem = char.ToUpper(IOConsole.GetChar("\nEnter option or M for menu:"));
        }
        return menuItem;
    }

    static void DisplayMenu()
    {
       Console.WriteLine("C-> Create Contacts");
       Console.WriteLine("R-> Remove Contacts");
       Console.WriteLine("U-> Update Contacts");
       Console.WriteLine("D -> Load data from file");
       Console.WriteLine("S-> Save data to file");
       Console.WriteLine("L-> View sorted by last name");
       Console.WriteLine("F-> View sorted by first name");
       Console.WriteLine("P-> View by partial name search");
       Console.WriteLine("T-> View by contact type");
       Console.WriteLine("Q-> Quit");
    }

    //Routes to the appropriate process routine based on the user menu choice
    static void ProcessMenuItem(Char menuItem, List<Contact> contactList)
    {
        switch (menuItem)
        {
            case 'C':
                createContact();
                break;
            case 'R':
                Console.WriteLine("enter the contact name To delete");
                removeContact(contactList, Console.Read().ToString() );
                    break;
            case 'U':
                updateContact(contactList);
                break;
            case 'D':
                LoadFromFile();
                break;
            case 'S':
                saveToFile();
                break;

            case 'L':
                sortByLastName(contactList);
                break;
            case 'F':
                sortByFirstName(contactList);
                   break;
            case 'P':
                   DisplayList(contactList);
                   break;
            case 'T':
                   sortByContactType();
                   break;
            case 'Q':

                   break;

        }                   
    }
// allows the user to update a contact
     public static void updateContact(List<Contact> contactList)
    {
        char answer, answer2, answer3, answer4,asnwer5;
        String newFirstName = " ";
        String newLastName = " ";
        String newPhoneNumber = " ";
        String newEmailAddress = " ";
        //Type newContactType = Contact.ContactTypes;


         Console.WriteLine("\nUpdate Contact:{1}" , contactList); 


        foreach (Contact obj in contactList)
        {

                answer = IOConsole.GetChar("\nEdit FirstName?: Y/N: ");


                if (answer.Equals('Y') || answer.Equals('y'))
                {
                    newFirstName = IOConsole.Getstring("\nUpdate Contact: please enter the contact's new first name: ");
                    obj.GetFirstName = newFirstName;
                    break;
                }

                else if (answer.Equals('N') || answer.Equals('n'))
                {

                }


                    answer2 = IOConsole.GetChar("\nEdit LastName?: Y/N: ");


                    if (answer2.Equals('Y') || answer.Equals('y'))
                    {
                        newLastName = IOConsole.Getstring("\nUpdate Contact: please enter the contact's new last name: ");
                        obj.GetFirstName = newLastName;
                        break;
                    }

                    else if (answer2.Equals('N') || answer.Equals('n'))
                    {



                    }


                    answer2 = IOConsole.GetChar("\nEdit EmailAddress?: Y/N: ");


                    if (answer2.Equals('Y') || answer.Equals('y'))
                    {
                        newEmailAddress = IOConsole.Getstring("\nUpdate Player: please enter the contact's new emailaddress) name: ");
                        obj.GetFirstName = newEmailAddress;
                        break;
                    }

                    else if (answer2.Equals('N') || answer.Equals('n'))
                    {



                    }


                    answer3 = IOConsole.GetChar("\nEdit phonenumber?: Y/N: ");


                    if (answer3.Equals('Y') || answer.Equals('y'))
                    {
                        newPhoneNumber = IOConsole.Getstring("\nUpdate Contact: please enter the contact's new phonenumber: ");
                        obj.GetFirstName = newPhoneNumber;
                        break;
                    }

                    else if (answer3.Equals('N') || answer.Equals('n'))
                    {



                    }


                    answer4 = IOConsole.GetChar("\nEdit ContactType?: Y/N: ");


                   /* if (answer4.Equals('Y') || answer.Equals('y'))
                    {
                        newContactType = IOConsole.Getstring("\nUpdate Player: please enter the contact's new type: ");
                        obj.GetFirstName = newContactType;
                        break;
                    }

                    else if (answer4.Equals('N') || answer.Equals('n'))
                    {



                    }*/


        }

    }
乔尔·莱加斯皮·恩里克斯(Joel Legaspi Enriquez)

您可以更改以下内容吗?

Console.WriteLine("\nUpdate Contact:{1}" , contactList);

到:

Console.WriteLine("\nUpdate Contact:{0}" , contactList);

发生什么事是你应该必须以0格式化字符串时,在参数列表给定的顺序。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

未处理的异常:System.FormatException

mscorlib.dll 中发生类型为“System.FormatException”的未处理异常附加信息:输入字符串的格式不正确

错误消息:C#中的mscorlib.dll中发生了'System.FormatException'类型的未处理异常

发生类型为'System.NullReferenceException'的未处理异常

发生类型为'System.NullReferenceException'的未处理异常

C#-类型为System.FormatException的未处理异常-列出要列出int的字符串

“System.FormatException”类型的未处理异常附加信息:输入字符串的格式不正确

在C#中从十进制到十六进制的错误“在mscorlib.dll中发生了'System.FormatException'类型的未处理的异常”

Windows 窗体“System.Data.dll 中发生类型为‘System.ArgumentException’的未处理异常”

MySql - System.Data.dll 中发生类型为“System.InvalidOperationException”的未处理异常

System.Data.dll 中发生类型为“System.AccessViolationException”的未处理异常

类型System.Exception的异常未处理

VimService55.XmlSerializers.dll中发生类型为'System.StackOverflowException'的未处理异常

WebDriver.dll中发生类型为'System.InvalidOperationException'的未处理异常

错误:mscorlib.dll中发生了类型为'System.UnauthorizedAccessException'的未处理异常

未知模块中发生类型为“System.TypeInitializationException”的未处理异常

exe中发生类型为'System.IO.FileLoadException'的未处理异常

Microsoft.WindowsAzure.Storage.dll中发生了类型为'System.StackOverflowException'的未处理异常

选择查询 C# 中发生类型为“System.Data.OleDb.OleDbException”的未处理异常

mscorlib.dll中发生类型为'System.FormatException'的第一次机会异常

System.Data.Linq.dll中发生了类型为'System.Data.SqlServerCe.SqlCeException'的未处理异常

错误:System.Windows.Forms.dll中发生了类型为'System.BadImageFormatException'的未处理异常

为什么我在System.Core.dll中发生类型为'System.ArgumentNullException'的未处理异常

VisualStudio错误:System.Data.dll中发生了类型为'System.Data.SqlClient.SqlException'的未处理的异常

错误:System.Data.dll中发生了类型为'System.Data.SqlClient.SqlException'的未处理的异常

生成报告会导致在system.windows.forms.dll中发生类型为'system.stackoverflowexception'的未处理异常

SetAccessControl提供错误,因为mscorlib.dll中发生类型为'System.UnauthorizedAccessException'的未处理异常

File.Copy,mscorlib.dll 中发生类型为“System.IO.IOException”的未处理异常

发生了类型为“System.StackOverflowException”的未处理异常,并且 toString 首先出现了一些不同的问题