StockItem/HeavyStockItem/CarEngine階層の各クラスには2つのコンストラクタが含まれています。C# - StockNumberのインクリメント
StockItemには、最後に使用された在庫番号(10000に初期化)の値を保持する静的フィールドが含まれています。
StockItemのコンストラクタの1つは、このフィールドを無視し、このシステムが実装される前に受け取った在庫を入力するためのパラメータとして在庫番号を受け取ります。 また、DescriptionとCostPriceをパラメータとして受け取ります。
StockItemのコンストラクタの2番目のものは、この静的フィールドを使用して在庫番号を自動的に生成するため、渡された在庫番号引数は必要ありません。 DescriptionとCostPriceのパラメータを受け取ります。
それぞれのStockItemのサブクラスがこのモデルに従い、タスクに適したスーパーコンストラクタを呼び出し、それに応じて(クラスに固有の)追加された引数を処理します。
class StockItem
{
public static int LastStockNumber = 10000;
public int StockNumber;
public string Description;
public float CostPrice;
public StockItem(int StockNumber, string Description, float CostPrice) : this(Description, CostPrice)
{
this.StockNumber = StockNumber;
this.Description = Description;
this.CostPrice = CostPrice;
}
public StockItem(string Description, float CostPrice)
{
LastStockNumber++;
StockNumber = LastStockNumber;
}
class HeavyStockItem : StockItem
{
private float Weight;
public HeavyStockItem(int StockNumber, string Description, float CostPrice, float Weight) : base(StockNumber, Description, CostPrice)
{
this.Weight = Weight;
}
public HeavyStockItem(string Description, float CostPrice, float Weight) : base(Description, CostPrice)
{
}
class CarEngine : HeavyStockItem
{
private string EngineNumber;
public CarEngine(int StockNumber, string Description, float CostPrice, float Weight, string EngineNumber) : base(StockNumber, Description, CostPrice, Weight)
{
this.EngineNumber = EngineNumber;
}
public CarEngine(string Description, float CostPrice, float Weight, string EngineNumber) : base(Description, CostPrice, Weight)
{
}
現在、私のコードは、すべてのStockItemのための+1が増加しているが、NO StockNumberが指定された場合、私は唯一の増分にそれをしたいです。
ここの初心者コーダー:
乾杯!
在庫番号は10000,10001,10002などである必要がありますが、現在在庫番号は10000,10002,10004です。 – MeLzA