我想知道粗体的地方怎么解释  我看不懂   为什么要加这段代码呢。。{
    class Program
    {
        static void Main(string[] args)
        {
            Mouse m = new Mouse { cat = new Cat() };
            m.CrySanpSound();
            Console.ReadKey();
        }
    }
    interface ISound
    {
        void CrySanpSound();
    }
    public class Cat : ISound
    {
        public void CrySanpSound()
        {
            Console.WriteLine("抓住了老鼠");
        }
    }
    public class Mouse : ISound
    {
        public Cat cat { get; set; }
        private static  int number=0;
        public Mouse()
        {
            number++;
        }
        public override string ToString()
        {
            return"老鼠"+number;
        }        
        public void CrySanpSound()
        {
            Console.WriteLine("吱吱吱。。");
            cat.CrySanpSound();
        }
    }
}

解决方案 »

  1.   

            private static  int number=0;
            public Mouse()
            {
                number++;
            }
            public override string ToString()
            {
                return"老鼠"+number;
            }
      

  2.   

    (1) static,定义一个静态变量。静态变量的值在这个类的所有成员之间共享,类似全局变量。(2) 重写 ToString(),首先搞清楚 ToString() 有什么用。比如我们调用 Console.WriteLine(obj);
    实际上WriteLine函数内部会调用obj的ToString()方法,产生一个字符串,再输出。再比如,我们在调试的时候,调试窗口也会调用ToString()给出对象的信息。
    所以ToString()很有用。默认情况下,系统内置的对象,ToString()都会给出有意义的字符串,比如对于一个整数,将会返回字面数值的字符串,对于一个集合,会列举集合里面元素。但是对于自己写的类,ToString()默认会输出对象的类名。有时候我们希望输出更有意义的信息,就可以重写这个方法。