2011-09-13 43 views
2

目前我在瑞典學習一個在線課程C#中的基礎編程和我有一個例子的問題。在講座中,有一個方法和參數的例子,並且在編碼中有一個錯誤,所以當我想嘗試一下,看看它做了什麼不起作用。幾天前我已經給講師寫了一封電子郵件,但他沒有迴應。C#的方法和參數

這裏是代碼: 我有兩個類。第一是Account.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace Classes_Objects_2 
{ 
    class Account 
    { 
     public double Balance = 0; 

     public void ShowMessage() 
     { 
      Console.WriteLine("Welcome to the Account Book!"); 
     } 

     // Method Deposit. 
     public double Deposit(double depositAmount) 
     { 
      // You get a 5% bonus. 
      return depositAmount * 1.05; 
     } 
    } 
} 

而這裏是返回2個錯誤的第二碼:當用戶輸入100作爲存款

類被稱爲Accounts.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace Classes_Objects_2 
{ 
    class Accounts 
    { 
     static void Main(string[] args) 
     { 
      Account myAccount = new Account(); 
      myAccount.ShowMessage(); 
      Console.WriteLine("Your balance is " + myAccount.Balance); 
      Console.Write("Enter the deposit amount: "); 
      double newBalance = myAccount.Deposit(double.Parse(Console.ReadLine())); 
      newBalance = amountDep; 
      Console.WriteLine("Your balance becomes " + newBalance); 
      Console.Write("Enter the next deposit amount: "); 
      newBalance = myAccount.Deposit(double.Parse(Console.ReadLine())); 
      newBalance = amountDep; 
      Console.WriteLine("Your balance becomes " + newBalance); 
     } 
    } 
} 

,他得到105與存款,然後當他進入200他得到315.這是我所瞄準的輸出,它應該根據講座工作。

由於amountDep在帳戶類中出現錯誤,所以它無法識別,這是真的,但我不知道如何解決此問題。你能幫我把這個弄出來,讓我可以繼續學習嗎? 謝謝!

+0

您得到的具體錯誤消息是什麼? –

+1

不要用'開始/結束'方法記錄方法。它很少或沒有價值。如果你需要一個'結束方法'的評論,你的方法太長... –

+0

如果你問我,這是一個非常混亂的樣本。你需要在某處聲明變量amountDep,但我想整個例子都有缺陷 – UrbanEsc

回答

0

您需要更改存款方式以包含「餘額+ =存款金額* 1.05」以增加帳戶餘額並存入存款。使用帳戶類的餘額字段來檢索Main方法中的當前餘額(例如Console.WriteLine(「Balance:」+ myAccount.Balance); 注意:您不應該使用公共字段,而應該使用類屬性。以大寫命名(如「Balance」),但是「balance」或「_balance」或「mBalance」。 祝你好運!

1

你還沒有實例化amountDep或給它

廣告類似

double amountDep = 0; 

或選擇的值的值

1

你可以聲明變量:

double amountDep = 1234; 
0

我認爲amountDep是沒有必要的。無論如何,它是無處宣告的。

它可以被刪除,因爲newBalance的分配完成在amountDep的賦值之上。

只是一個小的文本錯誤,我猜!

1

只需刪除這兩條線:

newBalance = amountDep; 

目前尚不清楚是什麼在這裏意,並有n個其他提到不存在的變量amountDep的,所以我爲了得到編譯代碼說只是刪除這兩條線,繼續下去。

0

據我所見,執行後餘額不會改變Deposit方法。所以我的猜測是,amountDep應該被添加到您帳戶的餘額中,如下所示:

double amountDep = myAccount.Deposit(double.Parse(Console.ReadLine())); 
double newBalance = myAccount.Balance += amountDep; 
Console.WriteLine("Your balance becomes " + newBalance); 
Console.Write("Enter the next deposit amount: "); 
amountDep = myAccount.Deposit(double.Parse(Console.ReadLine())); 
myAccount.Balance += amountDep; 
Console.WriteLine("Your balance becomes " + newBalance);