教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 资格考试 >

c#读书笔记,与大家分享(2)

来源:网络收集 时间:2026-08-27
导读: Dispose()的执行代码显示释放由对象直接使用的所有未托管资源,并在所有实现IDisposable接口的封装对象上调用Dispose()。 一般情况下,最好的方法是执行这两种机制。 4.不安全的代码: 在C#中使用指针,不建议使用


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字,全部文档内容请下载后查看。喜欢就下载吧 ……

c#读书笔记,与大家分享(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/90381.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)