public static void RunDemo()
        {
            Console.WriteLine("Equality for value types demo: Demonstrates a value type for" +
                              " which equality has been implemented");

            FoodItemValueType banana    = new FoodItemValueType("banana", FoodGroup.Fruit);
            FoodItemValueType banana2   = new FoodItemValueType("banana", FoodGroup.Fruit);
            FoodItemValueType chocolate = new FoodItemValueType("chocolate", FoodGroup.Sweets);

            Console.WriteLine("banana == banana2: " + (banana == banana2));       // returns TRUE : value equality
            Console.WriteLine("banana2 == chocolate: " + (banana2 == chocolate)); // returns FALSE : value equality
            Console.WriteLine("chocolate == banana: " + (chocolate == banana));   // returns FALSE : value equality

            Console.WriteLine();
        }
        public static void RunDemo()
        {
            Console.WriteLine("FoodItemNameOnlyEqualityComparerDemo:");

            FoodItemValueType beetroot        = new FoodItemValueType("beetroot", FoodGroup.Vegetables);
            FoodItemValueType pickledBeetroot = new FoodItemValueType("beetroot", FoodGroup.Sweets);

            var  eqComparer = FoodItemNameOnlyEqualityComparer.Instance;
            bool result     = eqComparer.Equals(beetroot, pickledBeetroot);

            Console.WriteLine("Equals? " + result.ToString());
            Console.WriteLine(eqComparer.GetHashCode(beetroot));
            Console.WriteLine(eqComparer.GetHashCode(pickledBeetroot));

            Console.WriteLine();
        }