Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c搜索数组-方法没有重载_C#_Arrays_Search_Methods - Fatal编程技术网

C# c搜索数组-方法没有重载

C# c搜索数组-方法没有重载,c#,arrays,search,methods,C#,Arrays,Search,Methods,当我试图编译我的程序时,我总是遇到一个错误,我在代码的搜索部分遇到了问题。不知道我做错了什么 以下是编译时出现的错误: 周3.cs97,17:错误CS1501:否 方法“searchAccounts”的重载 采取1周3.cs27,21: 相关符号的位置 先前错误 这是我的全部代码: using System; class Accounts { // private class members const int arrayLength = 5;

当我试图编译我的程序时,我总是遇到一个错误,我在代码的搜索部分遇到了问题。不知道我做错了什么

以下是编译时出现的错误:

周3.cs97,17:错误CS1501:否 方法“searchAccounts”的重载 采取1周3.cs27,21: 相关符号的位置 先前错误

这是我的全部代码:

using System;

class Accounts
    {
        // private class members
        const int arrayLength = 5;
        private int [] Account = new int[arrayLength]; //create arrays
        private double [] AcctBalance = new double[arrayLength];
        private string [] LastName = new string[arrayLength];

        // fill all three parallel arrays with input
        public void fillAccounts(int[] Account, double[] AcctBalance, string[] accountNameArray)
        {
            int arrayLength = 0;
            for (int i = 0; i < Account.Length; i++)
            {
                Console.Write("Enter integer account number ");
                Account[arrayLength] = Convert.ToInt32(Console.ReadLine());
                Console.Write("Enter account balance ");
                AcctBalance[arrayLength] = Convert.ToDouble(Console.ReadLine());
                Console.Write("Enter account holder last name ");

            } //end for

        } //end fillAccounts method

        public void searchAccounts(int[] Account, double[] AccountBalance, string[] LastName)
        {
            int accountNum = 0;
            bool isValid = false;
            int x = 0;

            Console.Write("Please enter the account number you wish to search for ");
            accountNum = Convert.ToInt32(Console.ReadLine());

            while (x < Account.Length && accountNum != Account[x])
                ++x;
            if(x != Account.Length)
            {
                isValid = true;
            }
            if(isValid)
                Console.WriteLine("Account number " + Account[x] + " has a balance of " + AcctBalance[x]
                    + " and the account holder is " + LastName[x]);
            else
                Console.WriteLine("No such account as {0}", accountNum);


        }

        public void averageAccounts(int[] Account, double[] AcctBalance)
        {
            // compute and display average of all 5 bal as currency use length.
            int balanceCount = 0;
            double balance = AcctBalance[balanceCount];
            double balanceSum = 0;
            double averageBalance = 0;

            for (int i = 0; i < Account.Length; i++)
            {
                balanceSum = balanceSum + balanceCount;
            }
            averageBalance = (balanceSum/balanceCount);
        } //end averageAccounts method
    } //end public class accounts


    class account_assignment  //wrapper class for main
    {
        static void Main()
        {
        int[] Account; 
        double[] AcctBalance; 
        string[] LastName;
            char entry;
            char a, A;
            char b, B;
            char x, X;

            //instantiate one new Accounts object
            Accounts accounts = new Accounts();

            //call class methods to fill accounts Array
            accounts.fillAccounts(Account, AcctBalance, LastName);
            //menu detailing entnries to select search (a or A) average (b or B) exit (x or X)


            Console.WriteLine("*****************************************");
            Console.WriteLine("enter an a or A to search account numbers");
            Console.WriteLine("enter a b or B to average the accounts");
            Console.WriteLine("enter an x or X to exit program");
            Console.WriteLine("*****************************************");

            entry = Convert.ToChar(Console.ReadLine());

            if (entry == 'a' || entry == 'A')
                accounts.searchAccounts(Account);
            if (entry == 'b' || entry == 'B')
                accounts.averageAccounts(Account, AcctBalance);
            if (entry == 'x' || entry == 'X')
                Console.WriteLine("The program will now close");

            //internal documentation
        } //end main
    }
任何帮助都将不胜感激。

替换

accounts.searchAccounts(Account);

正如目前所声明的,searchAccounts需要三个参数,不仅仅是您试图传递的参数-其他两个参数不是可选的,尽管您似乎根本不使用searchAccounts中的帐户余额行:

accounts.searchAccounts(Account);
正在使用一个参数调用searchAccounts

鉴于searchAccounts有此要求:

public void searchAccounts(int[] Account, double[] AccountBalance, string[] LastName)

有点离题,但我强烈建议您创建一个Account类并使用list或Dictionary类型的列表。这不仅是更好的OO实践,您还可以随时使用Linq的所有功能,因此您不必从头开始将方法编写为averageAccounts。
public void searchAccounts(int[] Account, double[] AccountBalance, string[] LastName)