Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Prática de Sobrecarga de Métodos | OOP Essentials
C# Beyond Basics

Prática de Sobrecarga de MétodosPrática de Sobrecarga de Métodos

Neste problema prático, você recebe uma classe ShippingCalculator com um método chamado CalculateShippingCost. O método deve ser sobrecarregado para suportar diferentes cenários de custos de envio com base no peso e destino.

Sua tarefa é preencher os espaços em branco (___) apropriadamente para completar os cálculos no método CalculateShippingCost tanto para envios locais quanto internacionais.

cs

index.cs

1. You need to overload the CalculateShippingCost. Therefore the new method needs to have the same name but different parameters. The required parameters are provided in the comments.

        using System;
        public class ShippingCalculator
        {
            // Method to calculate shipping cost for local shipments
            public double CalculateShippingCost(double weight)
            {
                // Local shipments have a fixed rate of $5 per kilogram
                return weight * 5;
            }
        
            // Method to calculate shipping cost for international shipments
            // It has two parameters 'weight' and an additional 'destinationCountry' which is of type 'string'
            public double CalculateShippingCost(double weight, string destinationCountry)
            {
                // International shipments have a base rate of $10 per kilogram
                // Additional $3 per kilogram for shipments to Canada
                // Additional $5 per kilogram for shipments to other countries
                double baseRate = 10;
                double additionalRate = destinationCountry.ToLower() == "canada" ? 3 : 5;
        
                return weight* (baseRate + additionalRate);
            }
        }
        
        class ConsoleApp
        {
            static void Main()
            {
                ShippingCalculator calculator = new ShippingCalculator();
        
                // Test local shipment
                double localCost = calculator.CalculateShippingCost(2);
                Console.WriteLine($"Local Shipment Cost: ${localCost}");
        
                // Test international shipment to Canada
                double internationalToCanadaCost = calculator.CalculateShippingCost(2, "Canada");
                Console.WriteLine($"International Shipment to Canada Cost: ${internationalToCanadaCost}");
        
                // Test international shipment to other countries
                double internationalToOtherCost = calculator.CalculateShippingCost(2, "Germany");
                Console.WriteLine($"International Shipment to Other Country Cost: ${internationalToOtherCost}");
            }
        }        
    

Tudo estava claro?

Seção 4. Capítulo 8
course content

Conteúdo do Curso

C# Beyond Basics

Prática de Sobrecarga de MétodosPrática de Sobrecarga de Métodos

Neste problema prático, você recebe uma classe ShippingCalculator com um método chamado CalculateShippingCost. O método deve ser sobrecarregado para suportar diferentes cenários de custos de envio com base no peso e destino.

Sua tarefa é preencher os espaços em branco (___) apropriadamente para completar os cálculos no método CalculateShippingCost tanto para envios locais quanto internacionais.

cs

index.cs

1. You need to overload the CalculateShippingCost. Therefore the new method needs to have the same name but different parameters. The required parameters are provided in the comments.

        using System;
        public class ShippingCalculator
        {
            // Method to calculate shipping cost for local shipments
            public double CalculateShippingCost(double weight)
            {
                // Local shipments have a fixed rate of $5 per kilogram
                return weight * 5;
            }
        
            // Method to calculate shipping cost for international shipments
            // It has two parameters 'weight' and an additional 'destinationCountry' which is of type 'string'
            public double CalculateShippingCost(double weight, string destinationCountry)
            {
                // International shipments have a base rate of $10 per kilogram
                // Additional $3 per kilogram for shipments to Canada
                // Additional $5 per kilogram for shipments to other countries
                double baseRate = 10;
                double additionalRate = destinationCountry.ToLower() == "canada" ? 3 : 5;
        
                return weight* (baseRate + additionalRate);
            }
        }
        
        class ConsoleApp
        {
            static void Main()
            {
                ShippingCalculator calculator = new ShippingCalculator();
        
                // Test local shipment
                double localCost = calculator.CalculateShippingCost(2);
                Console.WriteLine($"Local Shipment Cost: ${localCost}");
        
                // Test international shipment to Canada
                double internationalToCanadaCost = calculator.CalculateShippingCost(2, "Canada");
                Console.WriteLine($"International Shipment to Canada Cost: ${internationalToCanadaCost}");
        
                // Test international shipment to other countries
                double internationalToOtherCost = calculator.CalculateShippingCost(2, "Germany");
                Console.WriteLine($"International Shipment to Other Country Cost: ${internationalToOtherCost}");
            }
        }        
    

Tudo estava claro?

Seção 4. Capítulo 8
some-alt