摘要: 1.善用finally块: 特点:无论线程抛出什么类型的异常,finally块中的代码都会执行。 常见用法: a.清理那些已经成功启动的操作。 b.利用finally块显示释放对象以避免资源泄露。 ps:例如,只要使用了lock,using和foreach语句,C#编译器就会自动生成try/fina 阅读全文
posted @ 2019-03-12 16:04 Real陈麟 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 一.定制特性介绍 定制特性:利用定制特性,可宣告式地为自己的代码构造添加注解来实现特殊功能。定制特性允许为几乎每一个元数据记录项定义和引用信息。这种可扩展的元数据信息能在运行时查询,从而动态改变代码的执行方式。 作用范围:C#只允许将特性应用于定义一下任何目标元素的源代码:程序集,模块,类型(类,结 阅读全文
posted @ 2019-03-08 17:44 Real陈麟 阅读(160) 评论(0) 推荐(0) 编辑
摘要: API:Arrays.CreateInstance 例: 阅读全文
posted @ 2019-03-08 17:42 Real陈麟 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 一.逐字字符串(verbatim string) C#提供了一种特殊的字符串声明方式。采取这种方式,引号之间的所有字符都被视为字符串的和一部分。这种特殊声明称为”逐字字符串“,通常用于指定文件或目录的路径,或者与正则表达式配合使用。 例:string str = @"C:\Hello My Worl 阅读全文
posted @ 2019-01-28 15:30 Real陈麟 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 一.接口的继承(13.4) 派生类不能重写sealed的接口方法。但派生类可重新继承同一个接口,并为接口方法提供自己的实现。在对象上调用接口时,调用的是该方法在该对象的类型中的实现。下例对此进行了演示: 二.泛型接口(13.6~13.7) 1.泛型接口的好处(13.6): a.泛型接口提供了出色的编 阅读全文
posted @ 2019-01-03 12:02 Real陈麟 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 一.泛型中的开放类型和封闭类型 1.开放类型: 定义:具有泛型类型参数的类型称为开放类型。 特点:CLR禁止构造开放类型的任何实例。(这类似于CLR禁止构造接口类型的实例。) 2.封闭类型: 定义:所有类型参数都传递了实际的数据类型,类型就称为封闭类型。 特点:CLR可以构建实例 二.泛型接口 注: 阅读全文
posted @ 2018-12-28 14:35 Real陈麟 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 一.事件模式的用法 1.声明参数类型:NewMailEventArgs:EventArgs 2.声明委托类型:public delegate void EventHandler<TEventArgs>(Object sender,TEventArgs e); 3.声明事件:public event 阅读全文
posted @ 2018-12-28 14:32 Real陈麟 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 经常要构造一个对象并设置对象的一些公众属性(或字段)。 1.为了简化这个常见的编程模式,C#语言支持一种特殊的对象初始化语法。下面是一个例子: Employee e = new Employee(){ Name = "Jeff",Age = 45}; 2.如果属性的类型实现了IEnumerable或 阅读全文
posted @ 2018-12-28 14:30 Real陈麟 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 1.out关键字: a.不指望调用者在调用方法前就初始化好了对象 b.被调用的方法不能读取参数的值 c.要在方法返回前向这个值写入。 2.ref关键字: a.必须在调用方法前初始化参数的值 b.被调用方法可以读取值以及/或者向值写入。 3.CLR不区分out和ref,但C#编译器是将这两个关键字区别 阅读全文
posted @ 2018-12-28 14:29 Real陈麟 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 转换操作符是将对象从一种类型转换成另一种类型的方法。 CLR规范要求转换操作符重载方法必须是public和static的方法。 例: 在C#中,implicit关键字告诉编译器为了生成代码来调用方法,不需要在源代码中显式转型。 相反,explicit关键字告诉编译器只有在发现了显式转型时,才调用方法 阅读全文
posted @ 2018-12-28 14:28 Real陈麟 阅读(102) 评论(0) 推荐(0) 编辑