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运行环境还会自动回收堆中的数据,如果一些数据以后不再用到,就会自动回收内存 * 缺点是堆的执行速度慢 */ }