1. 概述 本章内容包括 访问控制符.属性 和 显式接口实现. 2. 主要内容 2.1 访问控制符 封装的核心是隐藏信息.访问控制符用来实现类型成员的访问控制. C#的访问控制符有:public, internal, protected, protected internal (or的关系), private. 使用 InternalsVisibleToAttribute, 可以设置开放给其他程序集使用. [assembly:InternalsVisibleTo("Friend1a")…
1. 概述 本章内容包括 管理非托管资源.使用IDisposable接口 以及 管理析构器和垃圾回收. 2. 主要内容 2.1 理解垃圾回收机制 ① 代码执行的时候,内存中有两个地方存放数据项:堆 和 栈. ② 一个方法结束的时候,其使用的栈空间会被自动清空. 而堆空间,是由垃圾回收器管理的. ③ 垃圾回收器的工作原理是:启动以后,垃圾回收器的标记程序会遍历堆上保存的对象,标记出仍然被引用的对象,然后压缩程序启动,它会把当前仍然存在引用的对象移动到一起,然后释放掉其他不存在引用的对象. ④ 执行…
1. 概述 本章包括 字符串基本操作 以及 查找.遍历.格式化字符串. 2. 主要内容 2.1 在.net平台中使用字符串 C#中,string是用来保存文本信息的.是一个被当做值类型使用的引用类型. C#中,string对象是不可变的.每次更改都会重新创建一个string对象..net内部有称为字符串驻留(interning)的机制来优化效率. 2.2 操作字符串 ① StringBuilder StringBuilder 会使用内部的字符串缓存来提高效率.甚至可以允许修改内部某一个字符. 当…
1. 概述 一个.net程序不仅包含代码和数据,还包含 元数据. 本章介绍如何应用attributes以及如何使用反射来获取它,还有如何使用CodeDom和expression trees来实现在运行时生成代码. 2. 主要内容 2.1 创建和使用attributes ① attributes用来向程序添加元数据.可以应用到所有类型:程序集.类.方法.参数.属性. [Conditional("CONDITION1"), Conditional("CONDITION2"…
1. 概述 本章介绍 值类型的装箱拆箱.类型转换 以及 C#4.0新推出的 dynamic 关键字. 2. 主要内容 2.1 装箱和拆箱 2.2 类型转换 有四种方式可以实现类型转换: ① 隐式转换:编译器允许的,类型安全的转换.无需特殊的标记符号,编译器直接转换. ② 显式转换:无法隐式转换,可能会丢失精度的情况,需要用类型符号来强制转换. ③ 自定义转换 class Money { public Money(decimal amount) { Amount = amount; } publi…
1. 概述 本章内容包括 C#5中如何更好的创建类型以及如何扩展现有类型. 2. 主要内容 2.1 如何选择类型 C#类型系统包括三种类型:值类型.引用类型.指针类型.(指针类型用于非托管代码,很少使用.) ① 创建枚举类型(enums) 合理使用枚举类型 可以提高代码的可读性和可维护性. ② 值类型 还是 引用类型 使用值类型的三个推荐的原则: a. 对象的体积小.  b. 对象逻辑上不可变.  c. 使用中会生成很多对象. * 结构类型(struct) 不能自己定义空构造器,不适用继承系统.…
1. 概述 本章包括 设计和实现接口.创建和使用基类 以及 使用.net类库提供的标准接口. 2. 主要内容 2.1 设计和实现接口 一个接口包含公共的方法.属性.事件.索引器.类和结构都可以实现接口. interface IExample { string GetResult(); int Value { get; set; } event EventHandler ResultRetrived; int this[string index] { get; set; } } class Exa…
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程 前言:前面几篇博客我们基本已经介绍完了搭建整个项目和数据库访问层以及一些业务逻辑层的实现,当然了,我们的数据库访问层这样还是可以在进行封装的,但是我到这里就行了吧,项目也不大,不需要那么麻烦的,那么我们今天开始介绍我们需要介绍的内容,那就是我…
8.1 探索linux文件系统 8.1.1 基本的Linux文件系统 ext:最早的文件系统,叫扩展文件系统.使用虚拟目录操作硬件设备,在物理设备上按定长的块来存储数据. 用索引节点的系统来存放虚拟目录中所存储的文件信息. 有一张索引节点表:对应每个文件都有一个条目,存储了(文件名,文件大小,文件属主,文件属组,访问权限,还有一个指针) 通过索引节点号来标识文件 文件大小不得超过2GB. 在文件写入到物理设备时,存储数据很容易分散在整个设备中(碎片化),降低文件系统的性能.查找起来费时. ext…
EJB中EntityManager的管理方式有两种:Container-managed EntityManager和Application-managed EntityManager 即容器管理的EntityManager和应用管理的EntityManager 在EJB中,EntityManager所进行的持久化的方式与Hibernate的方式是不同的. 1.在Hibernate的同一个事务中,通过getCurrentSession获取的session对象均为同一个,保存于threadlocal…