我有一个重写ToString()
方法,我要输出格式化的数据。这些数据由11个不同的项目组成。除了一个项目外,我可以正确显示所有项目,但该项目仅显示为0.不知何故,它未达到ToString()
方法。我调试的程序和随后线,数据线,并在该点右侧要去ToString()
方法之前就消失了,我不知道为什么。这是我的代码。我只发布我认为与传递数据有关的代码。如果我错了,需要所有代码,请告诉我。数据未到达重写ToString()方法
private void btnPaymentButton_Click(object sender, EventArgs e)
{
amountPaid = double.Parse(this.txtAmountPaid.Text);
orderPaymentObject = new Payment(orderObject.TotalAmountDue, amountPaid);
this.txtNumberOfPizzaOrdered.Clear();
this.txtNumberOfCokesOrdered.Clear();
this.txtAmountDue.Clear();
this.txtAmountPaid.Clear();
this.lblYourOrder.Visible = true;
this.rtxtYourOrder.Visible = true;
this.rtxtYourOrder.Text = orderObject.ToString();
}
.......
public class Payment
{
PizzaOrder orderObject;
double amountPaid = 0.0,
totalAmountDue = 0.0;
public Payment()
{
}
public Payment(double amountDue, double payment)
{
orderObject = new PizzaOrder();
amountPaid = payment;
totalAmountDue = amountDue;
orderObject.GetChangeDue(totalAmountDue, amountPaid);
//orderObject.ToString();
}
public Payment(double payment)
{
amountPaid = payment;
}
public double AmountPaid
{
get
{
return this.amountPaid;
}
}
}
......
public override string ToString()
{
Payment paymentOrder = new Payment();
return string.Format(" {0} Pizzas @ {1:C}: {2,8:C}\n" +
" {3} Cokes @ {4:C}: {5,8:C}\n" +
" Order Amount: {6,8:C}\n" +
" Sales Tax: {7,9:C}\n" +
" Amount Due: {8,8:C}\n" +
" Amount Paid: {9,9:C}\n\n" +
" Change Due: {10,9:C}", NumberOfPizzas,
PIZZA_PRICE, totalCostOfPizza, NumberOfCokes, COKE_PRICE,
totalCostOfCoke, FoodAndDrinkTotal, TotalSalesTax,
TotalAmountDue, paymentOrder.AmountPaid, GetChangeDue(totalAmountDue,amountPaid));
}
没有正在传递的值是amountPaid
(第二从最后一个)。
我试着:
- 传递
amountPaid
变量在OrderFrom
类由内外的ToString()
方法, - 通过实例化传递
amountPaid
变量在Payment
类实例化对象OrderForm
一个Payment
对象内部和ToString
方法之外,并且 - 主叫输入
amountPaid
VA可以在toString
方法中作为变量和属性使用riable。
说实话,我抓住了许多吸管,我现在完全困惑,不知道该怎么做。
你为什么期望它是?您可以在不带参数的重写方法内实例化一个'Payment'(因此AmountPaid为0)。什么会给你一个期望,在这里除了0还有其他的东西? – 2012-03-05 17:10:55
我已经试过了,并且没有使用amountPaid参数。我只是再试一次,仍然是零。当我调试它时,数据在离开“this.rtxtYourOrder.Text = orderObject.ToString();”时消失并转到ToString()方法 – 2012-03-05 17:19:56