2019年6月20日
摘要: C/C++中由程序员进行对象的回收像学校食堂中由学生收盘子,.Net中由GC进行垃圾回收像餐馆中店员去回收。 GC是垃圾收集器(Garbage Collection)。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。GC只能处理托管内存资源的释放,对于非托管资源则不能使用GC进行回收,必须由程 阅读全文
posted @ 2019-06-20 10:04 二进制--洒脱 阅读(711) 评论(0) 推荐(0) 编辑
摘要: 栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;局部值类型变量、值类型参数等都在栈内存中。 堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小。 阅读全文
posted @ 2019-06-20 10:03 二进制--洒脱 阅读(132) 评论(0) 推荐(0) 编辑
摘要: Class可以被实例化,属于引用类型,是分配在内存的堆上的。类是引用传递的。 Struct属于值类型,是分配在内存的栈上的。结构体是复制传递的。 Int32、Boolean等都属于结构体。 阅读全文
posted @ 2019-06-20 10:02 二进制--洒脱 阅读(252) 评论(0) 推荐(0) 编辑
摘要: CTS:Common Type System 通用类型系统。Int32、Int16→int、String→string、Boolean→bool。每种语言都定义了自己的类型,.Net通过CTS提供了公共的类型,然后翻译生成对应的.Net类型。 CLS:Common Language Specific 阅读全文
posted @ 2019-06-20 10:01 二进制--洒脱 阅读(166) 评论(0) 推荐(0) 编辑
摘要: C#是一种程序设计语言,运行在.net CLR上,是创建应用程序的高级语言。 .net是一个平台,抽象的平台概念 实现形式是库:1、定义了基本的类型(通用类型系统CTS,common type system)。 2、包含.net公共语言运行库(CLK,common language runtime, 阅读全文
posted @ 2019-06-20 09:58 二进制--洒脱 阅读(1784) 评论(0) 推荐(0) 编辑
摘要: Object是引用类型,但是它的子类Int32竟然不能去Object能去的“要求必须是引用类型” 的地方,违反了继承的原则,所以需要把Int32装在Object中才能传递。 装箱:从值类型接口转换到引用类型。 拆箱:从引用类型转换到值类型。 object obj = null;//引用类型 obj 阅读全文
posted @ 2019-06-20 09:19 二进制--洒脱 阅读(884) 评论(0) 推荐(0) 编辑
摘要: 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。 区分层次的目的即为了“高内聚,低耦合”的思想。 表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候的所见所得。 业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层 阅读全文
posted @ 2019-06-20 09:18 二进制--洒脱 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 属性可以对设值、取值的过程进行非法值控制,比如年龄禁止设值负数,而字段则不能进行这样的设置。虽然一般情况下get读取的值就是set设置的值,但是可以让get读取的值不是set设置的值的,极端的例子。Public Age{get{return 100;}set{}}。加分的补充回答:用reflecto 阅读全文
posted @ 2019-06-20 09:17 二进制--洒脱 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要。重载(overload)是面向过程的概念。(重载是编译期多态) Override 是进行基类中函数的重写。Override是面向对象的概念(重写是运行时的多态) 阅读全文
posted @ 2019-06-20 09:16 二进制--洒脱 阅读(612) 评论(0) 推荐(0) 编辑
摘要: 委托可以把一个方法作为参数代入另一个方法。 委托可以理解为指向一个函数的指针。 委托和事件没有可比性,因为委托是类型,事件是对象,下面说的是委托的对象(用委托方式实现的事件)和(标准的event方式实现)事件的区别。事件的内部是用委托实现的。因为对于事件来讲,外部只能“注册自己+=、注销自己-=”, 阅读全文
posted @ 2019-06-20 09:13 二进制--洒脱 阅读(2867) 评论(0) 推荐(0) 编辑