Пример #1
0
        static void Main(string[] args)
        {
            var carOrder = new Order();
            var carItem = new OrderItem("Audi B4");
            var alternativeCarItem = new OrderItem("Mitsubishi Lancer");
            var orderItemProcessor = new OrderItemProcessor();

            //return multiple results from function using out

            carOrder.addOrderItem(carItem);

            int carItemCount;
            var orderItems = carOrder.getOrderItems(out carItemCount);

            Console.WriteLine($"Order item count is {carItemCount}", carItemCount);

            //swap two OrderItem instances using ref

            printCarTitles("Before swap:", carItem.Title, alternativeCarItem.Title);
            orderItemProcessor.swapOrderItems(ref carItem, ref alternativeCarItem);
            printCarTitles("After swap:", carItem.Title, alternativeCarItem.Title);

            //duplicateOrderItem receives a copy of object reference. original object does not change

            var duplicateCarItem = orderItemProcessor.duplicateOrderItem(carItem);
            var isSameObject = carItem.Equals(duplicateCarItem);

            printCarComparisonResut(isSameObject, carItem.Title, duplicateCarItem.Title);
        }
        public void duplicatesOrderItems()
        {
            var carItem = new OrderItem("Audi B4");
            var orderItemProcessor = new OrderItemProcessor();
            var duplicateCarItem = orderItemProcessor.duplicateOrderItem(carItem);

            Assert.AreNotEqual(carItem, duplicateCarItem);
        }
        public void swapsOrderItems()
        {
            var carItem = new OrderItem("Audi B4");
            var alternativeCarItem = new OrderItem("Mitsubishi Lancer");

            var orderItemProcessor = new OrderItemProcessor();
            orderItemProcessor.swapOrderItems(ref carItem, ref alternativeCarItem);

            Assert.AreEqual("Mitsubishi Lancer", carItem.Title);
            Assert.AreEqual("Audi B4", alternativeCarItem.Title);
        }