Метод возврата значения C#
Мне нужна помощь в создании трех методов перегрузки, называемых GetPrice(). Для всех трех методов GetPrice () должна возвращать цену от одного до трех параметров. Если передан один параметр (цена), по умолчанию количество равно 1 и налог не взимается. Если переданы два параметра, цена и количество, налог не взимается. Если переданы три параметра: цена, количество и процент налога с продаж (десятичное число, представляющее процент), возвращаемая цена * количество + (цена * количество * налог с продаж). Я новичок в C#, на самом деле не знаю много, просто хочу знать, что вы решите эту простую проблему.
2 ответа
Три простых метода, предполагающих, что ваш налог представляет собой двойной процент (т. Е. 5% будут переданы как 0,05):
public double GetPrice(double price)
{
return price;
}
public double GetPrice(double price, double tax)
{
return price + (price * tax);
}
public double GetPrice(double price, int quantity, double tax)
{
return (quantity * price) + (quantity * price * tax);
}
или как указано @JonSkeet, один метод с параметрами по умолчанию:
public double GetPrice(double price, int quantity = 1, double tax = 0.0)
{
return (quantity * price) + (quantity * price * tax);
}
Не проверял, но что-то вроде этого, это должно помочь вам
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
class Program
{
public decimal GetPrice(decimal price)
{
return price;
}
public decimal GetPrice(decimal price, int qty)
{
return price * qty;
}
public decimal GetPrice(decimal price, int qty, decimal tax)
{
return price * qty * tax;
}
static void Main(string[] args)
{
}
}
}
Или более интересный способ, потому что вы используете методы: -
public decimal GetPrice(decimal price)
{
return price
}
public decimal GetPrice(decimal price, int qty)
{
return GetPrice(price) * quantity
}
public decimal GetPrice(decimal price, int qty, decimal tax)
{
return GetPrice(price, qty) * tax
}