c # search array - нет перегрузки для метода - PullRequest
1 голос
/ 04 апреля 2011

Я получаю сообщение об ошибке при попытке скомпилировать мою программу, у меня возникают проблемы с поисковой частью кода.Не уверен, что я делаю неправильно.

Вот ошибка, которую я получаю при компиляции:

week3.cs (97,17): ошибка CS1501: нет перегрузки дляметод 'searchAccounts' принимает 1 аргумент week3.cs (27,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
    }

Любойпомощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 04 апреля 2011

Строка:

accounts.searchAccounts(Account);

Вызывает searchAccounts с одним параметром.

, тогда как searchAccounts имеет это требование:

public void searchAccounts(int[] Account, double[] AccountBalance, string[] LastName)
0 голосов
/ 04 апреля 2011

Заменить

accounts.searchAccounts(Account);

с

accounts.searchAccounts(Account, AcctBalance, LastName);

Как объявлено прямо сейчас searchAccounts нужны три параметра, а не только тот, который вы пытаетесь передать - два других не являются обязательными (хотя вы, похоже, совсем не используете баланс счета в searchAccounts())

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...