C# 方法'';(';无法从用法中推断。)

C# 方法'';(';无法从用法中推断。),c#,C#,我正在尝试构建一个联系人管理程序,使用对象数组来存储数据。我需要查看一个报告,其中显示可用联系人的摘要,然后提供一个菜单,允许用户与程序交互。 但是由于某种原因,当我调用ProcessMenuItem方法时,我得到了错误: 无法根据用法推断方法“managerApplication.Program.ProcessMenuItem(char,System.Collections.Generic.List)”的类型参数 任何指导都将不胜感激 static void Main(string[] arg

我正在尝试构建一个联系人管理程序,使用对象数组来存储数据。我需要查看一个报告,其中显示可用联系人的摘要,然后提供一个菜单,允许用户与程序交互。 但是由于某种原因,当我调用ProcessMenuItem方法时,我得到了错误:

无法根据用法推断方法“managerApplication.Program.ProcessMenuItem(char,System.Collections.Generic.List)”的类型参数

任何指导都将不胜感激

static void Main(string[] args)
    {


        //Declare the list

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

        Console.WriteLine("Contact List");

        //Main Driver
        char menuItem;
        Console.WriteLine("Welcome to the player system...\n");
        menuItem = GetMenuItem();
        while (menuItem != 'X')
        {

            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("Enter 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<contactList> contactList)
    {
        switch (menuItem)
        {
            case 'C':
                createContact();
                break;
            case 'R':
                 removeContact();
                break;
            case 'U':
                updateContact();
                break;
            case 'D':
                LoadToFile();
                break;
            case 'S':
                saveToFile();
                break;

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

                   break;

        }                   
    }
static void Main(字符串[]args)
{
//申报名单
列表联系人列表=新列表();
Console.WriteLine(“联系人列表”);
//主要驱动力
char menuItem;
Console.WriteLine(“欢迎使用播放器系统…\n”);
menuItem=GetMenuItem();
while(menuItem!=“X”)
{
ProcessMenuItem(menuItem,联系人列表);
menuItem=GetMenuItem();
}
Console.WriteLine(“\n谢谢,再见”);
Console.ReadLine();
}
//向调用者返回“C”、“R”、“U”、“D”、“L”或“X”
静态字符GetMenuItem()
{
char menuItem;
显示菜单();
menuItem=char.ToUpper(IOConsole.GetChar(“\n请选择一项:”);
while(menuItem!=“C”
&&menuItem!=“R”&&menuItem!=“Q”&&menuItem!=“U”&&menuItem!=“D”&&menuItem!=“S”&&menuItem!=“L”&&menuItem!=“F”&&menuItem!=“P”&&menuItem!=“T”)
{
Console.WriteLine(“\n错误-无效菜单项”);
显示菜单();
menuItem=char.ToUpper(IOConsole.GetChar(“为菜单输入选项或M”);
}
返回菜单项;
}
静态void显示菜单()
{
Console.WriteLine(“C->创建联系人”);
Console.WriteLine(“R->删除联系人”);
Console.WriteLine(“U->更新联系人”);
Console.WriteLine(“D->从文件加载数据”);
Console.WriteLine(“S->将数据保存到文件”);
Console.WriteLine(“L->按姓氏排序的视图”);
Console.WriteLine(“F->按名字排序的视图”);
Console.WriteLine(“P->按部分名称搜索查看”);
Console.WriteLine(“T->按联系人类型查看”);
控制台.WriteLine(“Q->Quit”);
}
//根据用户菜单选择,路由到适当的处理例程
静态void ProcessMenuItem(Char menuItem,List contactList)
{
开关(菜单项)
{
案例“C”:
createContact();
打破
案例“R”:
removeContact();
打破
案例“U”:
updateContact();
打破
案例“D”:
LoadToFile();
打破
案例S:
saveToFile();
打破
案例“L”:
sortByLastName(联系人列表);
打破
案例“F”:
sortByFirstName(联系人列表);
打破
案例“P”:
显示列表();
打破
案例“T”:
sortByContactType();
打破
案例‘Q’:
打破
}                   
}

我认为您应该更改这一行:

ProcessMenuItem(Char menuItem,List contactList)


ProcessMenuItem(Char-menuItem,List-contactList)
我认为您应该更改这行:

ProcessMenuItem(Char menuItem,List contactList)

ProcessMenuItem(Char menuItem,List contactList)