摘要:
1:垃圾回收机制CLR托管堆:(1)第0代--预算容量256k(2)第1代--预算容量2M(3)第2代--预算容量10M注:在不同的程序中,托管堆上的实际内存管理对象的容量可能不会按照预算容量大小开辟当第0代对象充满的时候,会自动进行垃圾回收,这时第0代中未被释放的对象成为了第1代,而新创建的对象变成第0代,以此类推,当第0代再次充满的时候会继续执行垃圾回收,未被释放的对象会被添加到第1代,随着程序的执行,第1代对象中也会产生垃圾,此时垃圾回收器并不会立即执行回收操作,而是等第1代被充满变成第2代时被回收并整理内存。2:Finalize析构函数被调用的条件:(1)第0代对象充满(2)显示调用S 阅读全文
摘要:
using System;class A{ //静态构造函数用来初始化类的静态成员,使用类A时会自动调用,且不管该类有多少实例对象,该函数只执行一次 static A() { Console.WriteLine("类A静态构造函数被调用"); } public A() { Console.WriteLine("类A默认构造函数被调用"); } public A(int i) { Console.WriteLine("类A带参构造函数被调用"); }}class B:A{ public B... 阅读全文
摘要:
1:value(值传递)、ref(引用传递)、out(输出传递)ref和out使用效果上面是等效的,它们的区别在于:参数标记为ref,那么必须在调用函数之前初始化参数的值;参数标记为out,调用函数之前不需要初始化对象,但调用的函数必要在函数返回之前为对象赋值using System;//value(值传递)、ref(引用传递)、out(输出传递)public class Test{ public static void ValueFun(int i) { i++; } public static void RefFun(ref int j) { ... 阅读全文