考え方は単純です。ストアの「部門」の構造体を作成し、名前付け用の変数 (「部門」という文字列) と、その部門で行われたすべての購入を保存するための配列を指定します。
ここで、特定の部門で購入を保存するたびに、部門の名前と購入金額に基づいて割引が自動的に適用されるようにしたいと考えています。
さて、サンプルクラス:
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;
}
}
「Code-Simple」という行に注意してください。これは、departments[0].Buys[0] = 105
購入したものを保存したい方法です...
ここで、構造体のプロパティに注意してください。これBuys
は「配列プロパティ」です。次に、value > 100
条件を使用すると、明らかなエラーが発生し、からdouble
にキャストできませんdouble[]
。
質問... の正しい条件をどのように書くことができますvalue > 100
か?
「インデクサー」を試してみましたが、試した限りdepartments[0].Buys[0] = 105
、正しい方法で割り当てを行うことはできません。
このスキーマを保持したいことに注意してください。特に、購入を簡単に言うdepartments[0].Buys[0] = 105
ためです。
編集:
前の構造体 "Departments" は、例としてのみ使用されています。別の方法で正しい「部門」を作成することについては回答しません。配列の個々の要素で設定されたパラメーターを機能させる方法の回答が必要です