-1

+ operator .. im をオーバーロードすることにより、顧客の口座をマージする機能を実装しようとしました。最初に bankaccounts のリストに入力を取り、次に list を BankAccounts オブジェクトを含むリストを返す関数の引数に渡します。これまでのところ、特定の顧客に関連するすべてのアカウント情報を含むリストを取得しました

しかし、オーバーロードを使用してリスト項目を追加する必要があります+が、そうすることができません..これが私のクラスとメインコードです...親切に助けてください...

namespace OpOverload{class BankAccounts
{
    private string title;
    List<BankAccounts> bankList = new List<BankAccounts>();
    private double balance;

    internal List<BankAccounts> BankList
    {
        get { return bankList; }
        set { bankList = value; }
    }

    public double Balance
    {
        get { return balance; }
        set { balance = value; }
    }

    public string Title
    {
        get { return title; }
        set { title = value; }
    }

    public void input()
    {
        BankAccounts[] banks = new BankAccounts[3] { new BankAccounts(), new BankAccounts(), new BankAccounts() };
        int i = 0;
        do
        {
            Console.WriteLine("Account Title?:   ");
            banks[i].Title = Console.ReadLine();
            Console.WriteLine("Account Balance Deposited?:    ");
            banks[i].Balance = Convert.ToInt32(Console.ReadLine());
            bankList.Add(banks[i]);
            ++i;
        } while (i <= 2);
    }

    public List<BankAccounts> setTogether(string title1, List<BankAccounts> blist)
    {
        List<BankAccounts> sameName2gther = new List<BankAccounts>();
        foreach (BankAccounts item in blist)
        {
            if (item.Title == title1)
            {
                sameName2gther.Add(item);
            }
        }
        return sameName2gther;
    }

    public static BankAccounts operator +(BankAccounts b1,List<BankAccounts> blist)
    {
        BankAccounts ba = new BankAccounts();
        foreach (BankAccounts item in blist)
        {
            ba.balance = ba.balance + item.Balance;
            ba.title = item.Title;
        }
        return ba;
    }
}

}

主なコードは次のとおりです。

namespace OpOverload{
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("===========Merge Accounts============");
        List<BankAccounts> customList = new List<BankAccounts>();
        BankAccounts b1 = new BankAccounts();
        BankAccounts result = new BankAccounts();
        b1.input();
        foreach (BankAccounts item in b1.BankList)
        {
            Console.WriteLine(item.Title + "-->" + item.Balance);
        }
        customList = b1.setTogether("sana", b1.BankList);
        foreach (BankAccounts item in customList)
        {
            Console.WriteLine(item.Title + "-->" + item.Balance);
        }
        for (int i = 0; i < customList.Count; i++)
        {
            result = result + customList[i];
        }

        Console.ReadLine();
    }
}

}

4

2 に答える 2

1

回答: BankAccounts と BankAccounts の演算子 + を定義します :-)

于 2012-06-06T15:13:13.547 に答える
1

BankAccountsaと a List<BankAccounts>;を取る演算子を定義しました。しかし、あなたのコード例では、2 つのBankAccountsオブジェクトを一緒に追加しようとしました。

演算子を再定義して 2 つのインスタンスのみを追加するか、使用法を変更してリストをインスタンスに追加してください。

于 2012-06-06T15:14:00.213 に答える