Sha256: 0578aa884357fb0aff88f2bc90c0c57f5ce9a35debdb27becd839d1f97943fc3

Contents?: true

Size: 978 Bytes

Versions: 308

Compression:

Stored size: 978 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 Balance
    {
        get
        {
            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

308 entries across 308 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.2.1.179 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.2.1.178 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.2.1.177 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.2.1.176 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.2.1.175 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.2.1.174 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.2.1.173 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.2.1.172 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.2.1.171 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.2.1.170 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.2.1.169 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.2.1.167 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.2.1.166 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.2.1.165 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.2.1.164 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.2.1.163 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.2.1.162 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.2.1.161 tracks/csharp/exercises/bank-account/Example.cs
trackler-2.2.1.160 tracks/csharp/exercises/bank-account/Example.cs