private Product CreateProduct(string type, double price) { Product product = null; switch (type) { case "Gpu": { product = new Gpu(price); break; } case "Ram": { product = new Ram(price); break; } case "HardDrive": { product = new HardDrive(price); break; } case "SolidStateDrive": { product = new SolidStateDrive(price); break; } default: { throw new InvalidOperationException("Invalid product type!"); } } return(product); }