Sha256: cea4e524ac8d94f4f9ff086135329c5c8c81d04f1c0067823317d4a9e4d5c783

Contents?: true

Size: 918 Bytes

Versions: 88

Compression:

Stored size: 918 Bytes

Contents

using System;

public class BankAccount
{
    private readonly object _lock = new object();

    private float balance;
    private bool isOpen;

    public void Open()
    {
        lock(_lock)
        {
            isOpen = true;
        }
    }

    public void Close()
    {
        lock(_lock)
        {
            isOpen = false;
        }
    }

    public float GetBalance()
    {
        lock(_lock)
        {
            if (!isOpen)
            {
                throw new InvalidOperationException("Cannot get balance on an account that isn't open");
            }

            return balance;
        }
    }

    public void UpdateBalance(float change)
    {
        lock(_lock)
        {
            if (!isOpen)
            {
                throw new InvalidOperationException("Cannot update balance on an account that isn't open");
            }

            balance += change;
        }
    }
}

Version data entries

88 entries across 88 versions & 1 rubygems

Version Path
trackler-2.0.6.32 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.0.6.31 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.0.6.30 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.0.6.29 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.0.6.28 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.0.6.27 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.0.6.26 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.0.6.25 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.0.6.24 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.0.6.23 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.0.6.22 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.0.6.21 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.0.6.20 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.0.6.19 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.0.6.18 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.0.6.17 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.0.6.16 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.0.6.15 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.0.6.14 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.0.6.13 tracks/csharp/exercises/bank-account/Example.cs