-2

私は C# の学習を始めたばかりなので、かなり新しいです... Check balance のメソッドを作成しようとしていますが、タイトルで述べたエラーが引き続き発生します... コードが完成していないことはわかっていますが、できるようにしたかっただけですしばらくの間、アカウントの種類のメニューに戻りますか??

また、「static void start(ref bool dimensionUpdated)」という行を説明できる人はいますか?これが何をするのかよくわかりません。ありがとうございました!!

class Program
{
   static void start(ref bool dimensionsUpdated){
        int userOption = 0;

        //Repeats the loop until the user wishes to exit
        do
        {
        Console.WriteLine("Welcome to EziTeller ATM Machine\n\n");

        Console.WriteLine("Transaction Menu"
                        + "\n================\n"
                        + "\n1) Check Balance"
                        + "\n2) Withdraw"
                        + "\n3) Transfer");
        Console.WriteLine("\n\nPlease Enter Your Option: 1, 2, 3 or 0 to exit: ");

        //Read in the users choice
        userOption = int.Parse(Console.ReadLine());

            Console.ReadKey(); 

            //Run a series of checks to see what the user chose.
            //Open the desired method, otherwise show error message
            //Asking the user to input a VALID option.
            if (userOption == 0)
            {
                Console.WriteLine("Thank you for using EziTeller!");
                Environment.Exit(0);
            }
            else if (userOption == 1){
                checkBalance(ref dimensionsUpdated);
            }
            else if (userOption == 2){
                withdrawMoney(ref dimensionsUpdated);
            }
            else if (userOption == 3){
                transferMoney(ref dimensionsUpdated);
            }
            else Console.WriteLine("\n\nPlease enter a valid option, either 1, 2, 3, or 0 to exit\n\n");
        }   while (userOption != 0);
   }
    public static double checkBalance(ref bool dimensionsUpdated){
        Console.WriteLine("Account Types"
                        + "\n============\n"
                        + "\n1) Savings Account"
                        + "\n2) Debit Card"
                        + "\n3) Credit Card"
                        + "\n4) Line of Credit");
        Console.WriteLine("\n\nPlease Enter Your Option: 1...4 or 0 to exit: ");
4

4 に答える 4

0

checkBalance 関数は、どのような場合でも値を返す必要があります。

public static double checkBalance(ref bool dimensionsUpdated){
    if(...){
        return 1;
    }
    else if(...){
        return 1;
    }
    return 0;
}
于 2012-09-04T06:19:05.657 に答える
0

オブジェクト指向の基本について読んだほうがいいと思います。

質問に答えるには:

  • あなたのメソッドcheckBalanceは値を返していないようですが、その署名は「double」型の数値を返すと述べています。しかし、投稿されたコードではメソッドの最後が切り取られているため、確かなことはわかりません。
  • static void start(ref bool dimensionsUpdated)戻り値の型が「void」の「start」という名前のメソッドの別のメソッド宣言です (つまり、何も返しません)。「dimensionsUpdated」という名前の「boolean」型の参照パラメーターが 1 つあります。
于 2012-09-04T06:32:44.790 に答える
0

エラーを無効にするためreturn 0;に(一時的に)の最後に置くことができます。checkBalance

何が起こっているのかというと、関数を double を返すように宣言しても、実際には何も返さない場合、c# はエラーがあると見なします。

于 2012-09-04T06:18:09.643 に答える
0

これは、メソッドがdouble値を返し、メソッドから何も返していないためです。

public static double checkBalance(ref bool dimensionsUpdated)

質問には完全なコードが含まれていないため、完全なコードを投稿できます。

double内で値を返しているif statement可能性があります。その場合は、メソッド パスのいずれかが double 値を返すようにする必要があります。

または、それがメソッドの完全なコードであり、checkBalanceそこから何も返さない場合は、メソッドのシグネチャを変更して返すことができますvoid

public static void checkBalance(ref bool dimensionsUpdated)
于 2012-09-04T06:18:12.523 に答える