私は請求書を追跡するプログラムを持っています。法案が毎月繰り返されている場合は、それらの日付(1年まで)をリストに追加したいと思います。DateTime AddMonthsが代わりに乗算されます
//code changed for brevity but same principle applies
private List<Bill> GenerateRecurring(Bill bill)
{
//bill.DueDate = Convert.ToDateTime("10/14/2017");
var Bills = new List<Bill>();
for (int i = 1; i <= 12; i++)
{
var newBill = bill;
newBill.DueDate = bill.DueDate.AddMonths(i);
Bills.Add(newBill);
}
return Bills;
}
私はなど、日付2017年11月14日、2017年12月14日を持っている手形の要素を期待し、その代わりに、彼らは2017年11月14日、2018年1月14日、4月14日です/ 2018など
ループ内で毎回 'bill.DueDate'が更新されているのですか、何か不足していますか?
newBillに請求書を割り当てることでオブジェクトはコピーされませんが、両方の変数が同じオブジェクトインスタンスを指しているだけです。同じ値を持つクラスの新しいインスタンスを作成するには、明示的にBillクラスにメソッドを追加する必要があります。 – NineBerry
あなたのdueDateをループの前に保存し、それを使って請求書の新しい日付を作成してください –