价值回归方法C#

时间:2015-04-23 21:14:11

标签: c# methods overloading

我需要帮助创建一个名为GetPrice()的三个重载方法。对于所有这三种方法,GetPrice()应该返回一到三个参数的价格。如果传递单个参数(价格),则将数量默认为1且不含税。如果两个参数通过,价格和数量,则不征税。如果三个参数通过,价格,数量和销售税百分比(十进制代表百分比),退货价格*数量+(价格*数量*销售税)。我不熟悉c#真的很清楚,只是想知道你会做这个简单的问题。

2 个答案:

答案 0 :(得分:2)

三种简单的方法,假设您的税是双倍代表百分比(即5%将以.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);
}

答案 1 :(得分:0)

Haven没有对它进行过测试,但这样的事情应该会让你前进

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
}