public class bill
        {
            public class billModel
            {
                private decimal _price;
                private decimal _number;
                private decimal _discount;
                private decimal _account;
                private DateTime _date;
                private bool _isPromotion;
                private int _memberType;                /// <summary>
                /// 单价
                /// </summary>
                public decimal price
                {
                    get { return _price; }
                    set { _price = value; }
                }
                /// <summary>
                /// 数量
                /// </summary>
                public decimal number
                {
                    get { return _number; }
                    set { _number = value; }
                }
                /// <summary>
                /// 折扣
                /// </summary>
                public decimal discount
                {
                    get { return _discount; }
                    set { _discount = value; }
                }
                /// <summary>
                /// 金额
                /// </summary>
                public decimal account
                {
                    get { return _account; }
                    set { _account = value; }
                }
                /// <summary>
                /// 发生日期
                /// </summary>
                public DateTime date
                {
                    get { return _date; }
                    set { _date = value; }
                }
                /// <summary>
                /// 是否折扣
                /// </summary>
                public bool isPromotion
                {
                    get { return _isPromotion; }
                    set { _isPromotion = value; }
                }
                /// <summary>
                /// 会员类型: 0 普通会员,1 黄金会员,2 白金会员
                /// </summary>
                public int memberType
                {
                    get { return _memberType; }
                    set { _memberType = value; }
                }            }            public billModel GetAccount(decimal goodsPrice, decimal goodsNumber, int membertype,DateTime mydata)
            {
                billModel rs = new billModel();
                rs.price = goodsPrice;
                rs.number = goodsNumber;
                rs.memberType = membertype;
                rs.date = mydata;
                switch (membertype)
                {
                    case 0:
                        rs.isPromotion = false;
                        rs.discount = 1;
                        break;
                    case 1:
                        rs.isPromotion = true;
                        rs.discount = 0.9M;
                        break;
                    case 2:
                        rs.isPromotion = true;
                        rs.discount = 0.8M;
                        break;
                }
                rs.account = rs.price * rs.number * rs.discount;
                return rs;
            }
        }

解决方案 »

  1.   

    按文字顺序写啊;首先分为促销或者不促销两种情况(if促销else不促销):如果促销,这个商品6折;如果不促销,用枚举判断会员类型,给出响应的会员折扣;
      

  2.   

    借#1楼代码改了一下,我感觉应该更符合编码规范和提议:public class BillModel
    {
        /// <summary>
        /// 单价
        /// </summary>
        public decimal Price { get; set; }
        /// <summary>
        /// 数量
        /// </summary>
        public decimal Count { get; set; }    /// <summary>
        /// 折扣
        /// </summary>
        public decimal Discount
        {
            get
            {
                if (IsPromotion)
                    return 0.6M;            switch (MemberType)
                {
                    case VIPType.Golden:
                        return 0.9M;
                    case VIPType.Platinum:
                        return 0.8M;
                    default:
                        return 1.0M;
                }
            }
        }
            
        /// <summary>
        /// 金额
        /// </summary>
        public decimal Account
        {
            get
            {
                return Price * Discount * Count;
            }
                
        }
        /// <summary>
        /// 发生日期
        /// </summary>
        public DateTime Date { get; set; }    /// <summary>
        /// 是否折扣
        /// </summary>
        public bool IsPromotion { get; set; }    /// <summary>
        /// 会员类型: 0 普通会员,1 黄金会员,2 白金会员
        /// </summary>
        public VIPType MemberType { get; set; }
    }public enum VIPType
    {
        Normal = 0,
        Golden = 1,
        Platinum = 2,
    }
      

  3.   


    可以的,最好再封装下 属性的 权限。设计好联动。[/code]
      

  4.   


    这个类是需要赋值的,
    比如: 
    BillModel bm=new BillModel();没在赋值方法,没有初始化方法,在大型应用里,这样写是很容易出错的,并且错误很难查找
      

  5.   


    这个类是需要赋值的,
    比如: 
    BillModel bm=new BillModel();没在赋值方法,没有初始化方法,在大型应用里,这样写是很容易出错的,并且错误很难查找
    可以放在构造函数中初始化,或者使用初始化器。没必要专门弄个赋值函数。
      

  6.   


    可以的,最好再封装下 属性的 权限。设计好联动。[/code]
    仓促修改了一下,没考虑那么多,谢谢指点。