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 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); }