摘要:
Using一般作用是引入命名空间using system创建别名 using alias=namespace | type(using MsWord=Microsoft.office.Interop.Word)强制资源管理using(){}Using在编译时会被换成(try-finally)Using在做资源管理的时候适合做单一非托管资源管理,多个的话建议使用tryUsing只能适用于实现了IdisPosable接口的对象类型转化explicit用于声明必须强制转化的自定义类型implicit用于声明隐私的自定义类型转化public partial class WebForm8 : Syste 阅读全文
摘要:
【1】 new一个class对象和new一个struct或者enum有什么不同?new一个class的时候,做了两步,1是通过调用newboj命令来为实例在托管堆中分配内存,2是调用构造函数来实现对象初始化new一个statuct时候,new用于调用其带构造函数,完成实例的初始化 【2】 new在.NET中有几个用途,除了创建对象实例,还能做什么? 1.用作运算符创建新的对象,2用作修饰符,在子类中隐藏父类成员,(作为修饰符,基本的规则可以总结为:实现派生类中隐藏方法, new作为修饰符,实现隐藏基类成员时,不可和override共存,原因是这两者语义相斥:new用于实现创建一个新成员,同时. 阅读全文
摘要:
【1.是否可以在静态方法中使用base和this,为什么?】在静态成员中使用base和this都是不允许的。原因是,base和this访问的都是类的实例,也就是对象,而静态成员只能由类来访问,不能由对象来访问【2.base常用于哪些方面?this常用于哪些方面?】 base常用于,在派生类对象初始化时和基类进行通信this指代类对象本身,用于访问本类的所有常量、字段、属性和方法成员,而且不管访问元素是任何访问级别。因为,this仅仅局限于对象内部,对象外部是无法看到的,这就是this的基本思想。另外,静态成员不是对象的一部分,因此不能在静态方法中引用this【3.可以base访问基类的一切成员 阅读全文
摘要:
尽量使用Dispose代替Finalize合理选择垃圾回收器,工作站GC和服务期GC适当的使用对象的弱类型(WearkReference类用于表示弱类型)弱类型:(weakReference)通过Target属性来表示要跟踪的对象 public class clA { public clA() { } public string strb { get; set; } public string str { get; set; } } protected void Page_Load(object sender, EventArgs e) { clA cla = new clA(); WeakR 阅读全文
摘要:
CLR管理内存的区域主要有三快:1,线程的堆栈(用于值类型实例)2.,GC堆(分配小对象,当引用对象小于85000字节的时候分配在这里)3,LOh堆(分配大的实例对象)什么样的对象会被GC认为是垃圾该对象不被任何其他对象所引用,GC就会把它当做垃圾如何回收垃圾收集器根据跟列表遍历,将能找到所有可达,并形成一个可达对象图,同时对那些不可达的对象释放空间何时回收回收之后,又执行哪些操作 阅读全文