07 2012 档案
摘要:其实.NET开发大部分时候都不需要我们去考虑内存的分配与释放的问题。因为在托管环境中,内存的分配与回收是.NET运行库会自动去做的事情。但是如果需要写出高效,严谨的代码或者需要进行非托管资源的管理,我觉得还是应该对系统自动给我们做的这些事情有一些深入的了解。之前我对于这方面的了解也是一支半解,甚至有些理解是错误的。这两天认真学习了一下,记录在这里做个总结。我觉得这方面主要应该包括三个方面:内存的分配,内存的回收,内存的回收的控制1. 内存的分配.NET程序中主要有两大类数据类型:值类型与引用类型。.NET Framework会分别为这两种类型的数据类型在线程栈和托管堆上分配内存空间。-值类..
阅读全文
摘要:1. 委托的定义个人理解为将某类方法(方法签名相同,不论是私有方法,公有方法还是静态方法,实例方法)进地类型化的途径。可以类比于其他的类型例如:System.Int是对整数这一类具有共同特征的数据的一个类型化。2. 委托的作用通过委托,可以将某个方法作为参数进行传递。并且能够通过委托对传递的方法以进行签名检查。3. C#中定义委托C#中采用如下方式定义委托:public delegate ReturnType MethodName(Parameters(Type&Name))例如. public delegate void EventHandler(object sender,Even
阅读全文
摘要:可能在写程序的时候不会去在意问题, 因为遇到哪个变量没初始化就去使用的话,会出现编译不通过的情况。然后很自然的修改一下代码加上初始化的逻辑,这个问题就算解决了。所以一直没有在意这个问题。今天进行总结如下:如果是变量属于类成员,则变量是会有默认值的(如果没有显示的赋值)。1.引用类型默认值为null2.int等数值类型为0.这个赋值过程我个人理解是.NET Runtime在初始化一个类或实例的过程中做的。(有待验证)如果变量属于局部变量(如:在某个方法里面定义的),则如果不显示的赋值去使用的话,则会报编译错误。
阅读全文
浙公网安备 33010602011771号