-2

我刚刚开始学习 C#,所以很新……我正在尝试编写 Check balance 的方法,但不断收到我在标题中所说的错误……我知道代码还没有完成,但只是想能够暂时返回帐户类型菜单??

还有人能够解释“静态无效开始(参考布尔尺寸更新)”这一行我真的不知道这是做什么的。谢谢!!

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

您可以(暂时)放在return 0;末尾以禁用错误。checkBalance

发生的事情是,如果您将函数声明为返回双精度值,但实际上并没有返回任何内容,c# 会认为您有错误。

于 2012-09-04T06:18:09.643 回答
0

那是因为您的方法正在返回一个double值,而您没有从您的方法中返回任何内容。

public static double checkBalance(ref bool dimensionsUpdated)

由于问题中没有完整的代码,您可以发布完整的代码。

可能是您在 a 中返回一个doubleif statement,如果是这样,您需要确保您的任何方法路径都应该返回一个双精度值。

或者,如果这是您的checkBalance方法的完整代码并且您没有从中返回任何内容,那么您可以更改方法签名以返回void

public static void checkBalance(ref bool dimensionsUpdated)
于 2012-09-04T06:18:12.523 回答
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”的“布尔”类型的参考参数
于 2012-09-04T06:32:44.790 回答