public static void runSum()
        {
            // 调用静态方法是用[类名].[方法名]
            Console.WriteLine("Hello World!");
            // 这里Console其实就是一个类的名字
            // WriteLine是这个类的一个静态成员方法


            // 调用非静态方法是用[对象名].[方法名]
            c1.Dog dog = new c1.Dog();
            dog.eat();
            // 这里dog是一个对象的名字 这个对象的类型是c1.Dog
            // eat是这个对象的一个实例方法
        }
        public void run()
        {
            int a;                      // int是值类型 声明的变量会储存在栈

            c1.Dog dog1 = new c1.Dog(); // Dog是引用型 dog1这个引用储存在栈 dog1里含有的数据储存在堆

            /*
             *  栈中的数据是后进先出
             *  不能把变长的变量放进栈;不能对栈进行随机存取,只能访问栈顶(最后放进一个栈)的元素
             *  栈的大小有限,使用的时候要注意
             *  优点是执行速度快
             *
             *  堆相比栈,能存放大量数据,能动态分配内存空间,而且可以随机存取
             *  .net运行环境还会自动回收堆中的数据,如果一些数据以后不再用到,就会自动回收内存
             *  缺点是堆的执行速度慢
             */
        }