using System.Threading.Tasks;
public static void Task Main()
Safe safe = new Safe() { Type = SafeType.Metals };
safe.AddObject(new SilverCoin().WithDescription("Silver Dollar").WithCount(1).WithValue(1m));
safe.AddObject(new SilverCoin().WithDescription("Rare Silver 5 Dollar").WithCount(3).WithValue(5.5m));
safe.AddObject(new SilverCoin().WithDescription("Silver 10 Dollar").WithValue(10m));
safe.AddObject(new GoldBar().WithOzWeight(0.05m).WithDescription("Gold Nuggets").WithValue(1950m));
Console.WriteLine($"Storage Type: {safe.Type}");
Console.WriteLine($"Item Count: {safe.ItemCount}");
Console.WriteLine($"Total Value: {safe.TotalValue}");
Console.WriteLine($"The {safe.Type} safe contains the following objects:");
Console.WriteLine(storage.Contents());