public static PiggyBankImmutable BuyCandy(PiggyBankImmutable piggyBank) { if (piggyBank.Coins < 7) throw new ArgumentException( "Not enough money for candy!", "piggyBank"); return new PiggyBankImmutable(piggyBank.Coins - 7); }
public static void TestImmutable() { // still raises an ArgumentException var piggyBank = new PiggyBankImmutable(5); // ImmutableTest.BuyCandy(piggyBank); // ImmutableTest.DepositCoins(piggyBank); // now this raises an ArgumentException, too! piggyBank = new PiggyBankImmutable(5); ImmutableTest.DepositCoins(piggyBank); ImmutableTest.BuyCandy(piggyBank); piggyBank = new PiggyBankImmutable(5); ImmutableTest.BuyCandy(ImmutableTest.DepositCoins(piggyBank)); }
public static PiggyBankImmutable DepositCoins(PiggyBankImmutable piggyBank) { return new PiggyBankImmutable(piggyBank.Coins + 10); }