c#读书笔记,与大家分享(2)
Dispose()的执行代码显示释放由对象直接使用的所有未托管资源,并在所有实现IDisposable接口的封装对象上调用Dispose()。
一般情况下,最好的方法是执行这两种机制。
4.不安全的代码:
在C#中使用指针,不建议使用(184页),有待以后研究。
第八章:字符串和正则表达式(202页)
1.System.String类:专门用于存储字符串,允许对字符串进行许多操作。其他处理.NET类的字符串:System.Text,System.Text.RegularExpressions命名控件中的类。
3.格式化字符串:
一般使用String.Format()方法来获得该变量的合适字符串表示。
4.正在表达式:
正在表达式语言是专门用于字符串处理的语言,包含两个功能:
一组用于标识字符类型的转义代码;一个系统,在搜索操作中,它把字符串和中间结果的各个部分组合起来。
使用正则表达式,可以很好的对字符串执行复杂的操作,简化代码的编写量。实际上,是实例化了一个对象System.Text.RegularExpressions.Regex(甚至更简单:调用静态方法RegEx()方法),给它传送要处理的字符串和一个正则表达式,就可以了。
正在表达式中包含了转义序列和有特定含义的其他字符。
如:序列/b表示一个字的开头和结尾(字的边界)。
利用正则表达式检索字符:
String Text=”总字符串”;
String Pattern=”要检索的字符”;
MatchCollection Matches =Regex.Matches(Text,Pattern,RegexOptions.IgnoreCase//不区分大小写 | RegexOptions.ExplicitCapture);
Foreach(Match NextMatch in Matches)
{
Console.WriteLine(NextMatch.Index);
}
正则表达式的功能主要取决于模式字符。比如要查找以n开头的字,就可以定义string Pattern=@”"bn”。同样的,如果要查询以字母
a开头,以序列ion结尾的所有字string Pattern=@”"ba"S*ion"b”;//转义序列"S表示任何不是空白的字符,*表示前面的字符可以重复任意次。
一些重要的特定字符或转义序列参看MSDN
第九章:集合
c#读书笔记,与大家分享
(221页)
在.NET基类中,最简单的数据结构是数组,是System.Array类的一个实例。数组的缺点:在实例化时需要制定数组的大小,以后不能添加,插入或删除元素。
其他数据类型:集合,数组列表,栈,队列,有序列表,字典(映射)都在System.Collections命名空间中。
1. 集合:
是一组对象的合集,对象如果可以提供相关对象的引用,就是一个集合,称为枚举。使用foreach循环是集合的主要目的。
更专业的说法是集合必须实现接口System.Collections.IEnumerable。
Interface IEnumerable
{
IEnumerator GetEnumerator();//目的是返回枚举对象。
}
该枚举对象实现了接口System.Collections.IEnumerator。
Interface IEnumerator
{
object Current{get;}//Current属性返回一个对象引用。
bool MoveNext();//移动枚举,才能使它指向集合的第一个元素。
void Reset();//返回集合开头前面的位置。
}
2. 数组列表
类似于数组,但数组列表是可以增大的,System.Collections.ArrayList类来表示。这个特点与StringBulider类很相似。
实例化时,可以定义数组列表的大小,也可以不定义,默认情况下分配16个项大小,超出时加倍增长。如果定义了大小,则根据定义的大小成倍递加。
ArrayList a=new ArrayList(20);相应对象的方法参看MSDN。
与StringBuilder类不同的是,没有把数组列表转换为数组的方法。必须使用一个循环手工复制引用。---只能复制引用,不能复制对象。
3. Stack类
栈,适用于处理应用程序使用完后就删除的临时数据项。以后进先出的结构创建。(LIFO)
元素使用Push()方法放在栈中,而使用Pop()方法弹出栈外。
4. Queue类
队列,以先进先出(FIFO)的结构创建的集合。
元素使用Enqueue ()方法放入集合,用Dequeue()方法弹出集合。
5. SortedList类
SortedList类创建的集合,每一项都会指定一个用于引用该项的标识键。
SortedList name=new SortedList();
Name,Add(1,”brian”);//1就是标识键.
6. 字典和散列表
字典是复杂的数据结构,它允许按照某个键来访问元素,这个键可以是任意的数据类型。
它看起来像是一个数组,但不必用整数给它建立索引。当对象保存在数组中,但是需要用其他数据类型经行检索时,就可以用字典。
.NET中,基本的字典是由类Hashtable来表示的,微软提供了一个抽象类DirectionaryBase,可以派生出
自己的字典类。
Hashtable name=new Hashtable(53);//初始化容量最好是个素数,这样工作效率最好。
第十章:泛型(245页)
1.泛型:类似C++的模板,可以生成强类型化的集合,出错的几率更小,提高性能。
优点:性能,
c#读书笔记,与大家分享
类型安全,二进制代码重用。
List<int> list=new List<int>();
list.Add(44);//添加其他的类型会报错。
List<string> stringlist=new List< string >();
Stringlist.Add(“mystring”);
命名约定:用字母T作为前缀 public class List<T>{ }
2.泛型集合类:
在System.Collections.Generic命名空间中定义了许多泛型接口和集合类。可替换9章的集合类。
List<T>类:类似于ArrayList。不仅可以使用枚举添加和访问元素,还可以插入和删除元素,清空集合,把元素复制到数组中。还可以搜索和转换元素,使元素逆序。
Queue<T>类:类似于Queue类。队列的泛型版本。
LinkedList<T>类:没有非泛型集合的类似版本。是一个双向链表,其元素指向它前面和后面的元素。
3.创建定制的泛型类
类似于一般的类,只是要使用泛型类型声明。
public class MyGeneric<T>
{
Private T member;
Public void Method(T obj)
{
}
}
默认值:不能把null赋予泛型类型,因为泛型类型可以实例化值类型,而null只能用于引用类型。可以使用default关键字。
T doc = default(T);
泛型的类型可以用where来限制,where子句只能定义基类,接口和默认构造函数。不能定义,必须有泛型类型实现的运算符。
4.泛型方法
在泛型方法中,泛型类型用方法声明来定义。
Void Swap<T>(ref T x,ref T y)
{
}
…… 此处隐藏:2724字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [资格考试]石油钻采专业设备项目可行性研究报告编
- [资格考试]2012-2013学年度第二学期麻风病防治知
- [资格考试]道路勘测设计 绪论
- [资格考试]控烟戒烟知识培训资料
- [资格考试]建设工程安全生产管理(三类人员安全员
- [资格考试]photoshop制作茶叶包装盒步骤平面效果
- [资格考试]授课进度计划表封面(09-10下施工)
- [资格考试]麦肯锡卓越工作方法读后感
- [资格考试]2007年广西区农村信用社招聘考试试题
- [资格考试]软件实施工程师笔试题
- [资格考试]2014年初三数学复习专练第一章 数与式(
- [资格考试]中国糯玉米汁饮料市场发展概况及投资战
- [资格考试]塑钢门窗安装((专项方案)15)
- [资格考试]初中数学答题卡模板2
- [资格考试]2015-2020年中国效率手册行业市场调查
- [资格考试]华北电力大学学习实践活动领导小组办公
- [资格考试]溃疡性结肠炎研究的新进展
- [资格考试]人教版高中语文1—5册(必修)背诵篇目名
- [资格考试]ISO9001-2018质量管理体系最新版标准
- [资格考试]论文之希尔顿酒店集团进入中国的战略研
- 全国中小学生转学申请表
- 《奇迹暖暖》17-支2文学少女小满(9)公
- 2019-2020学年八年级地理下册 第六章
- 2005年高考试题——英语(天津卷)
- 无纺布耐磨测试方法及标准
- 建筑工程施工劳动力安排计划
- (目录)中国中央空调行业市场深度调研分
- 中国期货价格期限结构模型实证分析
- AutoCAD 2016基础教程第2章 AutoCAD基
- 2014-2015学年西城初三期末数学试题及
- 机械加工工艺基础(完整版)
- 归因理论在管理中的应用[1]0
- 突破瓶颈 实现医院可持续发展
- 2014年南京师范大学商学院决策学招生目
- 现浇箱梁支架预压报告
- Excel_2010函数图表入门与实战
- 人教版新课标初中数学 13.1 轴对称 (
- Visual Basic 6.0程序设计教程电子教案
- 2010北京助理工程师考试复习《建筑施工
- 国外5大医疗互联网模式分析




