using System;
using System.Collections.Generic;
using System.Text;namespace 储蓄信息
{
    class Card
    {
        private int _No;//帐号
        private static int Times;//办理业务次数
        private double _CurrentBalance;//当前余额
        string[] bus;//业务的具体描述
        public int No
        {
            get
            {
                return _No;
            }
            set
            {
                _No = value;
            }
        }
        public void store()
        {
            int choice;
            double usenum;
            Console.WriteLine("0.存款");
            Console.WriteLine("1.取款");
            Console.WriteLine("请选择业务类型:");
            choice = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("请输入具体金额:");
            usenum = Convert.ToDouble(Console.ReadLine());
            while(Times<10&&usenum>0)//办理次数小于10并且帐号正确,数据大于0
            {
                switch(choice)
                {
                    case 0:
                        {
                            _CurrentBalance+=usenum;
                            Times++;
                            Console.WriteLine("该笔业务的具体描述:");
                            bus[9-Times]= Console.ReadLine();
                        };
                        break;
                    default:
                        {
                            _CurrentBalance-=usenum;
                            Times++;
                            Console.WriteLine("该笔业务的具体描述:");
                            bus[9-Times] = Console.ReadLine();
                        };
                        break;
                }
            }        }
        public void display()
        {
            int i;
            Console.WriteLine("{0},{1}",_No,_CurrentBalance);
            for(i=0;i<Times;i++)
                Console.WriteLine(bus[i]);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入你的卡号:");
            Card card= new Card();
            card.No = Convert.ToInt32(Console.ReadLine());
            card.store();
            card.display();
        }
    }
}
生成的时候说我从未对Card.bus赋值,字段保持默认null.运行时,说未将对象的引用设置到对象实例

解决方案 »

  1.   

    string[] bus;//业务的具体描述
    只是声明了bus的String数组,并没有分配空间。
    可以在声明时string [] bus = new string[10];//10为描述总共的条数
    或构造函数中:bus = new string[10];
      

  2.   

    while (Times < 10 && usenum > 0)//办理次数小于10并且帐号正确,数据大于0此处应该是Times < 9 否则会出现bus[-1]赋值情况,抛出异常
      

  3.   

    public void display()
    {
    int i;
    Console.WriteLine("{0},{1}",_No,_CurrentBalance);
    for(i=0;i<Times;i++)
    Console.WriteLine(bus[i]);
    }
    for语句怎么没有执行啊。