为什么这些值没有显示在我的C#程序的只读标签中?

时间:2015-10-19 02:18:39

标签: c# class visual-studio-2012

我一直致力于一个需要两个类定义(clsCustomer和clsOrder)的程序,以及一个用于模拟计算总数并打印邮件标签的订单表单的驱动程序。教师提供了部分代码,我摆脱了以前的错误,但是当我运行程序并输入信息(姓名,地址,数量,价格等)时,只有#34;。"显示为邮件标签,扩展和总价格显示为" 0.00"。我试过玩它,似乎无法解决问题。这是代码:

    namespace CS8
{
    public partial class frmCS8 : Form
    {
        public frmCS8()
        {
            InitializeComponent();
        }

        private void btnCalculate_Click(object sender, EventArgs e)
        {
            string strMailingLabel;

            try
            {
                //Create an instance of clsCustomer using the overloaded constructor
                clsCustomer cobjCustomer = new clsCustomer(txtName.Text, txtStreet.Text,
                                    txtCity.Text, txtState.Text, txtZip.Text);

                //Build mailing label using the Get methods for Customer.
                strMailingLabel = cobjCustomer.Name + "\n" +
                                  cobjCustomer.Street + "\n" +
                                  cobjCustomer.City + ", " +
                                  cobjCustomer.State + "  " + cobjCustomer.Zip;

                //Display mailing address
                lblMailingLabel.Text = strMailingLabel;

                //Create an instance of clsOrder using the overloaded constructor
                clsOrder cobjOrder = new clsOrder
                    (txtDescription.Text,
                     int.Parse(txtQuantity.Text),
                     decimal.Parse(txtPrice.Text));

                //Test the calculate Extended Price method
                cobjOrder.calcExtendedPrice();

                //Update the totals in shared variables.
                cobjOrder.accumulateTotals();

                //Test the Get property method of extended priced
                lblExtension.Text = cobjOrder.ExtendedPrice.ToString("C");

                //Shared properties are accessed using class name
                //Test the Get Property methods of ReadOnly Shared properties 
                lblTotalCount.Text = clsOrder.TotalCount.ToString("N0");
                lblTotalPrice.Text = clsOrder.TotalPrice.ToString("C");

            }
            catch (Exception ex)
            {
                MessageBox.Show("Error :" + ex.Message
                                + "\n" + ex.StackTrace,
                                "Try/Catch - Unexpected Error",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
            }//end try
        }


        private void btnNextItem_Click(object sender, EventArgs e)
        {
            //clear the item fields
            txtDescription.Clear();
            txtQuantity.Clear();
            txtPrice.Clear();
            lblExtension.Text = "";

            txtDescription.Focus();
        }


        private void btnResetSummary_Click(object sender, EventArgs e)
        {
            //Reset totals using the class name to access the shared method
            clsOrder.resetTotals();

            lblTotalPrice.Text = "";
            lblTotalCount.Text = "";
            lblMailingLabel.Text = "";

            //Clear the rest of the form using next item method
            btnNextItem_Click(sender, e);    
        }


        private void btnExit_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}





    namespace CS8
{
   public class clsOrder
    {
        //declare class variables
       protected string cstrDescription;
       protected int cintQuantity;
       protected decimal cdecPrice;
       protected decimal cdecExtendedPrice;

       //shared variables
       static decimal cdecTotalPrice;
       static int cintTotalCount; 


        //declare constructors

       public clsOrder()
       {
       }
       public clsOrder(string strDescription,
       int intQuantity, decimal decPrice)

       //declare property methods
       {    

       this.Description = cstrDescription;
       this.Quantity = cintQuantity;
       this.Price =  cdecPrice;
       }
        //declare read-only properties
        public decimal ExtendedPrice
        {
        get
        {
            return cdecExtendedPrice;
        }
            set
            {
                cdecExtendedPrice = value;
            }
        }

          public string Description
         {
          get
          {
           return cstrDescription;
            }
            set 
            {
            cstrDescription = value;
             }
          }

          public int Quantity
          {
           get
           {
           return cintQuantity;
           }
           set
           {
            cintQuantity = value;
            }
         }

           public decimal Price
           {
            get
            {
            return cdecPrice;
             }
            set
            {
            cdecPrice = value;
             }
           }

        //declare Shared (static) ReadOnly Properites
        public static decimal TotalPrice
        {
            get
            {
                return cdecTotalPrice;
            }
        }

        public static int TotalCount
        {
            get
            {
                return cintTotalCount;
            }
            set
            {
                cintTotalCount = value;
            }
        }

        //declare supporting methods
        public void calcExtendedPrice()
        {
            cdecExtendedPrice = cintQuantity * cdecPrice;
        }

        public void accumulateTotals()
        {
            cdecTotalPrice += cdecExtendedPrice;
            cintTotalCount += 1;
        }

        public static void resetTotals()
        {
            cdecTotalPrice = 0;
            cintTotalCount = 0;
        }

    }//end of Class
}//end of namespace




    namespace CS8
{
    public class clsCustomer
    {
        //declare class variables
        private string cstrName;
        private string cstrStreet;
        private string cstrCity;
        private string cstrState;
        private string cstrZip;

        //declare constructors
        public clsCustomer()
        {
        }
        public clsCustomer(string strName,
        string strStreet, string strCity,
        string strState, string strZip)
        {
            this.Name = cstrName;
            this.Street = cstrStreet;
            this.City = cstrCity;
            this.State = cstrState;
            this.Zip = cstrZip;
        }

        public string Name
        {
            get
            {
                return cstrName;
            }
            set
            {
                cstrName = value;
            }
        }

        public string Street
        {
            get
            {
                return cstrStreet;
            }
            set
            {
                cstrStreet = value;
            }
        }

        public string City
        {
            get
            {
                return cstrCity;
            }
            set
            {
                cstrCity = value;
            }
        }

        public string State
        {
            get
            {
                return cstrState;
            }
            set
            {
                cstrState = value;
            }
        }

        public string Zip
        {
            get
            {
                return cstrZip;
            }
            set
            {
                cstrZip = value;
            }
        }

    }
}

非常感谢任何协助......

1 个答案:

答案 0 :(得分:1)

使用参数,而不是类字段:

void push_back( Object && x )
{
    if( theSize == theCapacity )
        reserve( 2 * theCapacity + 1 );
    objects[ theSize++ ] = std::move( x );
}