Насколько я вижу, единственное, что не так с вашим кодом - это отступ - когда вы добавляете элементы в запись, ключевое слово member
должно быть выровнено с {
определения записи.
Вы можете правильно определить тип, добавив новую строку после =
в первой строке:
type Account =
{accountNumber:string; mutable balance:float}
member this.Withdraw(cash:float) =
if cash > this.balance then
Console.WriteLine("Insufficient Funds. The Amount you wish to withdraw is greater than your current account balance.")
else
this.balance <- this.balance - cash
Console.WriteLine("You have withdrawn £" + cash.ToString() + ". Your balance is now: £" + this.balance.ToString())
member this.Deposit(cash:float) =
this.balance <- this.balance + cash
Console.WriteLine("£" + cash.ToString() + " Cash Deposited. Your new Balance is: £" + this.balance.ToString())
member this.Print() =
Console.WriteLine("Account Number: " + this.accountNumber)
Console.WriteLine("Balance: £" + this.balance.ToString())
Другая проблема в вашем коде заключается в том, что Print
определяется как свойствоа не метод, поэтому моя версия также добавляет параметр ()
- это не совсем ошибка, но определенно рекомендуется определять побочные эффекты как методы.