这个想法很简单。为商店的“部门”创建一个结构,给它一个用于命名的变量(一个名为“部门”的字符串),以及一个用于保存在该部门完成的所有购买的数组。
现在,我希望每次在特定部门保存购买时,它都会根据部门名称和购买金额自动应用折扣。
现在,示例类:
class Program
{
struct Departments
{
public string Department;
private double[] _buys;
public double[] Buys
{
get { return _buys; }
set
{
if (value > 100)
{
if (Department == "CLOTH")
_buys = value * .95;
if (Department == "FOOD")
_buys = value * .90;
if (Department == "OTHER")
_buys = value * .97;
}
_buys = value;
}
}
}
static void Main()
{
var departments = new Departments[3];
departments[0].Department = "CLOTH";
departments[1].Department = "FOOD";
departments[2].Department = "OTHER";
departments[0].Buys = new double[5];
departments[0].Buys[0] = 105;
}
}
注意这一行departments[0].Buys[0] = 105
,这就是我想保存购买的东西的方式,“代码简单”......
现在,注意Buys
结构的属性,它是一个“数组属性”。然后,当我使用value > 100
条件时,它给出了一个明显的错误,不能从double
to 转换double[]
。
问题......我怎样才能为 写一个正确的条件value > 100
,必须在结构上放置什么才能实现这一点?
我已经尝试过使用“索引器”,但只要我尝试过,我就无法让它以departments[0].Buys[0] = 105
正确的方式通过分配。
请注意,我想保留这个模式,特别是为了方便简单地说departments[0].Buys[0] = 105
购买
编辑:
前面的结构“部门”仅用于示例目的。我不会回答如何通过另一种方式来拥有正确的“部门”,我想要一个关于如何使 set 参数对数组的各个元素起作用的答案