【问题标题】:The type arguments for method'' (' cannot be inferred from the usage.)方法''的类型参数('不能从用法中推断出来。)
【发布时间】:2015-07-28 10:31:33
【问题描述】:

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

方法“managersApplication.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;

        }                   
    }

【问题讨论】:

    标签: c#


    【解决方案1】:

    我认为你应该改变这一行:

    ProcessMenuItem(Char menuItem, List&lt;contactList&gt; contactList)

    ProcessMenuItem(Char menuItem, List&lt;Contact&gt; contactList)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-29
      • 2013-03-29
      • 1970-01-01
      相关资源
      最近更新 更多