阅读背景:

包含类型不实现接口的系统。IComparable的错误

来源:互联网 
namespace Theprogram.cs
{
    class Program
    {
        static void Main(string[] args)
        {
            CreditCustomer[] creditCustomer = new CreditCustomer[5];
            int x, y;
            bool goodNum;
            for (x = 0; x < creditCustomer.Length; ++x)
            {
                creditCustomer[x] = new CreditCustomer();
                Console.Write("Enter customer number ");
                creditCustomer[x].CustomerNumber = Convert.ToInt32(Console.ReadLine());
                goodNum = true;
                for (y = 0; y < x; ++y)
                {
                    if (creditCustomer[x].Equals(creditCustomer[y]))
                        goodNum = false;
                }
                while (!goodNum)
                {
                    Console.Write("Sorry, the customer number " +
                       creditCustomer[x].CustomerNumber + " is a duplicate. " +
                       "\nPlease reenter ");
                    creditCustomer[x].CustomerNumber = Convert.ToInt32(Console.ReadLine());
                    goodNum = true;
                    for (y = 0; y < x; ++y)
                    {
                        if (creditCustomer[x].Equals(creditCustomer[y]))
                            goodNum = false;
                    }
                }
                Console.Write("Enter name ");
                creditCustomer[x].CustomerName = Console.ReadLine();
                Console.Write("Enter age ");
                creditCustomer[x].Rate = Convert.ToInt32(Console.ReadLine());
                Console.Write("Enter amount due ");
                creditCustomer[x].AmountDue = Convert.ToDouble(Console.ReadLine());
            }
            Array.Sort(creditCustomer);
            Array.Sort(customer);
        }
    }
    class Customer : IComparable<Customer>
    {
        private int customerNumber;
        public int CustomerNumber
        {
            get
            {
                return customerNumber;
            }
            set
            {
                customerNumber = value;
            }
        }
        private string customerName;
        public string CustomerName
        {
            get
            {
                return customerName;
            }
            set
            {
                customerName = value;
            }
        }
        private double amountDue;
        public double AmountDue
        {
            get
            {
                return amountDue;
            }
            set
            {
                amountDue = value;
            }
        }
        public Customer(int num, string name, int amt)
        {
        CustomerNumber = num;
        CustomerName = name;
        AmountDue = amt;
        }
        public Customer(): this(9, "ZZZ", 0)
        {
        }
        public override bool Equals(Object e)
        {
            bool equal;
            Customer temp = (Customer)e;
            if (this.CustomerNumber == temp.CustomerNumber)
                equal = true;
            else
                equal = false;
            return equal;
        }
        public override int GetHashCode()
        {
            return CustomerNumber;
        }
        public override string ToString()
        {
            return (GetType() + " Credit Customer " + CustomerNumber + " " + CustomerName +
              " Amount Due is " + AmountDue.ToString("C") + " Interest rate is ");
        }
        protected virtual int IComparable.CompareTo(Object o)
        {
            int returnVal;
            Customer temp = (Customer)o;
            if (this.CustomerNumber >
                temp.CustomerNumber)
                returnVal = 1;
            else
                if (this.CustomerNumber < temp.CustomerNumber)
                    returnVal = -1;
                else
                    returnVal = 0;
            return returnVal;
        }
    }
    class CreditCustomer : Customer, IComparable<CreditCustomer>
    {
        public int Rate {get; set;}
        int MonthlyPayment { get; set; }
        public CreditCustomer(int customerNumber, string customerName, int amountDue, int Rate) : base(customerNumber, customerName, amountDue)
        { }
        public CreditCustomer(): this(0, "", 0, 0)
        { }
        public override string ToString()
        {
            return (GetType() + " Credit Customer " + CustomerNumber + " " + CustomerName +
              " Amount Due is " + AmountDue.ToString("C") + " Interest rate is " + Rate + " Monthly Payment is " + MonthlyPayment);
        }
        int IComparable.CompareTo(object o)
        {
            int returnVal;
            CreditCustomer temp = (CreditCustomer)o;
            if (this.CustomerNumber > temp.CustomerNumber)
                returnVal = 1;
            else
                if (this.CustomerNumber < temp.CustomerNumber)
                    returnVal = -1;
                else
                    returnVal = 0;
            return returnVal;
        }
    }

}
namespace Theprogram.cs
{
    class Program
   



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: