看到书中的一个练习:
public class FarmAnimal    {
        string name;
        public virtual string Name{
            get 
            { return name; } 
            set 
            { name = value; } }
        public virtual void MakeSound()
        { Console.WriteLine(Name+"makes a sound"); }
    }
   public class Cow : FarmAnimal
    {
        public override void MakeSound()
        {
            Console.WriteLine(Name+"goes Moooooo");
        } 
    }
    public class Horse : FarmAnimal
    {
            public override string Name {
            set {base.Name=value+"[a Horse]"; }
            }
        }下面的客户代码将打印出什么???
Cow c =new Cow();
         Horse h=new Horse();
         c.Name = "Elisie";
         h.Name = "Mr.Ed";
         c.MakeSound();
         h.MakeSound();我才学C#我给的答案是:
Elsie goes Mooooo
Mr.Ed [a Horse] makes a sound
我给的答案正确不?要是不对的话,错在哪个地方的理解偏差?
如果我想把这个过程拿到VS里去,让它输出结果,程序该怎么写???
先去休息下,回头等大家的答复!

解决方案 »

  1.   

    我看是正确的啊。。
    没错误
    把程序放到VS里一样的啊。。
    把代码Copy过去不就得了
      

  2.   

    新建控制台应用程序
    复制一下代码
    using System;
    class Program
    {
        public class FarmAnimal
        {
            string name;
            public virtual string Name
            {
                get
                { return name; }
                set
                { name = value; }
            }
            public virtual void MakeSound()
            { Console.WriteLine(Name + "makes a sound"); }
        }
        public class Cow : FarmAnimal
        {
            public override void MakeSound()
            {
                Console.WriteLine(Name + "goes Moooooo");
            }
        }
        public class Horse : FarmAnimal
        {
            public override string Name
            {
                set { base.Name = value + "[a Horse]"; }
            }
        }    public static void Main(string[] args)
        {
            Cow c = new Cow();
            Horse h = new Horse();
            c.Name = "Elisie";
            h.Name = "Mr.Ed";
            c.MakeSound();
            h.MakeSound();
            Console.ReadLine();
        }}