MapXC 期末复习资料考试要点老师整理.docx
- 文档编号:8482731
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:36
- 大小:47.54KB
MapXC 期末复习资料考试要点老师整理.docx
《MapXC 期末复习资料考试要点老师整理.docx》由会员分享,可在线阅读,更多相关《MapXC 期末复习资料考试要点老师整理.docx(36页珍藏版)》请在冰豆网上搜索。
MapXC期末复习资料考试要点老师整理
一、.NET框架
VB.NET//C#//C++//.....
Commonlanguagespecification//
ASP.NET(WebForms&WebServices)//Windows
ADO.NET(Data&XML)//
ClassLibrary//
CommonLanguageRuntime(CLR)//
1、一般语言运行时CommonLanguageRuntime(CLR):
架构在操作系统的服务上,它负责应用程序实际的执行,满足所有的应用程序的需求。
用于执行和管理所有对.NET平台编写的程序语言编码。
CLR通过中间语言——(IntermediateLanguage)机制实现基于.NET的编程语言的无关性。
*通用语言规范(CLS)
规定所有.NET语言都应遵循的规则
生成可与其他语言互操作的应用程序
*公共类型系统(CTS)通常包含标准数据类型、包含准则集
CLS、CTS和MSIL紧密配合以实现语言互操作性
在.NET平台编写的程序首先经过.NET编译器,但得到的不是机器码,而是IntermediateLanguage(IL),然后再经过即时(JustInTime)编译器编译得到机器码并最终执行。
透过JIT编译器所编译出来的机器码仍被是CLR所管理。
这种方式使得不管用何种语言(VB、C#或其它语言)所写成的组件,都可以被结合在一起使用。
2、.NETFrameworkClassLibrary
.NET类库的组织是以名字空间(NameSpace)为基础的,最顶层的名字空间是System。
•usingSystem;
•usingSystem.Data;
•usingSystem.Text;——C#示例
第三方厂商提供的类库同样可以使用。
因为,该类库是以NameSpace组织的,可以很容易地避免命名冲突。
命名空间//说明
System.Drawing处理图形和绘图,包括打印
System.Data处理数据存取和管理,在定义ADO.NET技术中扮演重要角色
System.IO管理对文件和流的同步和异步访问
System.Windows处理基于窗体的窗口的创建
System.Reflection包含从程序集读取元数据的类
System.Threading包含用于多线程编程的类
System.Collections包含定义各种对象集的接口和类
3、ADO.NET(Data&XML)
ADO.NET为.NET框架提供一套统一的数据访问技术
与以前的ADO相比,ADO.NET主要引入了以下几个新特性:
(1)对XML的支持、
(2)引入新数据对象(DataSet)、(3)语言无关的数据访问
4、开发方式
ASP.NET:
WebApplication;WebService
Windows
*运行在.NETPlatform之上*支持多种语言(VB.NET、C#、c++)
5、CommonLanguageSpecification
定义了一组运行于.NETFramework的语言特性CLS,使得符合该规范的语言所编写程序可以在.NETFramework上无缝的集成。
符合该规范的语言,编译器可以把源代码编译成CLR所能识别的中间语言MicrosoftIntermediateLanguage(MSIL)和元数据metadata。
C#的特点(优点)
C#是专门为.NET应用而开发的语言。
在.NET类库的支持下,C#能够全面地体现.NETFramework的各种优点。
总地来说,C#具有以下突出的优点。
1.语法简洁。
2.彻底的面向对象设计。
3.与Web应用紧密结合。
4.强大的安全机制。
5.完善的错误、异常处理机制。
6.灵活的版本处理技术。
7.兼容性
VisualStudio2005
VisualStudio.NET2005是一套完整的开发工具,用于构建高性能的桌面应用程序、XMLWebServices、移动应用程序和ASPWeb应用程序
小结
(1).NETFramework由.NETFramework类库和公共语言运行时两个主要组件组成
(2)CLR是管理用户代码执行的现代运行时环境,它提供JIT编译、内存管理、异常管理和调试等方面的服务
(3)CTS定义声明、定义和管理所有类型所遵循的规则,而无需考虑源语言
(4)CLS是所有针对.NET的编译器都必须支持的一组最低标准,以确保语言的互操作性
(5)命名空间是一组包含相关方法的相似类,专门用于避免类与类之间的名称冲突
(6)即时(JIT)编译器将MSIL代码编译为特定于目标操作系统和计算机体系结构的本机代码
C#中的数据类型分为两个基本类别
1、值类型
表示实际数据
只是将值存放在内存中
值类型都存储在堆栈中
int、char、结构
2、引用类型
表示指向数据的指针或引用
包含内存堆中对象的地址
为null,则表示未引用任何对象
类、接口、数组、字符串
装箱和拆箱
装箱是将值类型转换为引用类型;拆箱是将引用类型转换为值类型
利用装箱和拆箱功能,可通过允许值类型的任何值与Object类型的值相互转换,将值类型与引用类型链接起来
隐式转换:
无需指明转换,编译器自动将操作数转换为相同的类型。
当两个不同类型的操作数进行运算时,编译器会试图对其进行自动类型转换,使两者变为同一类型。
但是,不同的数据类型具有不同的存储空间,如果试图将一个需要较大存储空间的数据转换为存储空间较小的数据,就会出现错误。
显式转换:
又叫做强制类型转换,需指定把一个数据转换成其他类型。
数组:
是可将同一类型的多个数据元素作为单个实体存放的一种数据结构
*数组是同一数据类型的一组值
*数组属于引用类型,因此存储在堆内存中
*数组元素初始化或给数组元素赋值都可以在声明数组时或在程序的后面阶段中进行
数据类型[元素个数]数组名称;int[6]arrayHere
Array类是支持数组的语言实现的基类。
1、创建数组
在C#中,数组大体可以分为两种:
一维数组和多维数组。
1.一维数组:
如果数组中的每个数据都只有一个元素,那么,这样的数据就称之为一维数组。
一维数组的定义方式如下:
data_type[]arr_name=newdata_type[intlength]
2.多维数组:
如果数组中的每个数据都由多个元素组成,那么,这样的数据就称之为多维数组。
多维数组的定义方式如下:
data_type[,…,]arr_name=newdata_type[intlength1,intlength2,…,intlengthn]
2、访问数组
访问数组的元素包括读取或设置某个元素的值。
最基本的方法是通过下标定位元素,另外还可以使用GetValue/SetValue方法。
1.通过下标定位元素
C#中数组对其中的元素进行排序,并从0开始计数,这样每一个元素都会有一个唯一的下标,通过这个下标,就可以定位唯一的一个元素。
2.使用GetValue/SetValue
GetValue方法定义如下:
publicobjectGetValue(paramsint[]indices);
3、数组排序
对数组进行排序是指按照一定的排序规则,如递增或递减规则,重新排列数组中的所有元素。
可以使用Array类的Sort方法完成这个功能。
Sort方法有多种重载方式,常用的形式如下:
publicstaticvoidSort(Arrayarray);
其中,参数array为待排序的数组。
下面的示例首先定义了一个数组,含有元素{5,4,3,2,1},然后利用Sort方法对其排序。
4、Clone方法
Clone方法对数组进行浅复制,即如果是引用类型数组,它不会复制元素引用的对象。
对于值类型数组和引用类型数组,结果不同:
克隆值类型数组会产生两个独立数组。
克隆引用类型数组会产生指向相同对象的两个数组。
数组序列
数组序列(ArrayList)是一种较为复杂的数组,其实现了可变大小的一维数组。
常用属性和方法如下。
属性:
Capacity//Count//IsReadOnly//Item//
方法:
Add/AddRange//IndexOf
BinarySearch//Insert/InsertRange
Clear//LastIndexOf
Contains//Remove/RemoveAt/RemoveRange
GetEnumerator//Reverse
GetRange//Sort
1、创建ArrayList
利用ArrayList的构造函数来创建一个新的列表,常用的形式有以下两种:
(1)publicArrayList()
(2)publicArrayList(intcapacity)
参数capacity可以指定所创建列表的初始容量。
如果不指定,则初始容量为.NET的默认值16。
下面的代码创建了两个列表对象:
(1)ArrayListarr1=newArrayList();
(2)ArrayListarr2=newArrayList(100);
2、添加元素
*可以通过ArrayList的Add和AddRange方法,实现向一个列表中添加数据。
两者的区别在于:
Add一次只能添加一个元素,而AddRange一次可以添加多个元素,这多个元素需要放在一个集合或数组中。
两者常用的形式如下:
(1)publicintAdd(objectvalue)
(2)publicvoidAddRange(ICollectionc)
*Add和AddRange方法只能将元素添加到列表的末尾,如果想要在列表的任意位置添加元素,则需要使用Insert方法。
3、删除元素
ArrayList中支持删除元素的方法有3个,形式分别如下:
(1)publicvoidRemove(objectobj):
用于删除数组中特定对象obj的第一个匹配项。
参数obj为要从ArrayList移除的Object;
(2)publicvoidRemoveAt(intindex):
用于移除ArrayList的指定索引处的元素。
参数index为要移除的元素的从零开始的索引;
(3)publicvoidRemoveRange(intindex,intcount):
用于从ArrayList中移除一定范围的元素。
参数index为要移除元素的起始索引(从零开始计数),参数count为要移除的元素数。
4、查找元素
(1)在集合中对特定元素的查找也是常用的操作之一,ArrayList提供了二分查找的方法BinarySearch。
(2)如果使用制定的排序策略对集合中的元素进行排序之后,相应地,也可以使用同样的排序策略,结合BinarySearch方法实现元素的查找。
这时,形式如下:
(3)publicvirtualintBinarySearch(objectvalue,IComparercomparer);
5、遍历列表
1.使用foreach语句
遍历列表是指访问一遍列表中的所有元素,可以使用foreach语句完成这个功能。
2.使用GetEnumerator方法
除了foreach之外,还可以使用ArrayList的GetEnumerator方法实现列表的遍历。
形式如下:
publicvirtualIEnumeratorGetEnumerator();
GetEnumerator方法返回整个ArrayList的枚举数对象IEnumerator。
这个对象可以得到一个集合对象的所有元素,其最主要的属性为Current,用于获取集合中的当前元素。
**数组(Array)与ArrayList的对比:
(1)数组是固定大小。
(2)数组要声明元素的类型,集合类的元素类型却是object。
(3)数组可读可写不能声明只读数组;集合类可以提供ReadOnly方法以只读方式使用集合。
(4)数组要有整数下标,集合不使用下标访问。
Array位于System命名空间中;ArrayList位于System.Collections命名空间中。
**哈希表
哈希表,名-值对。
类似于字典(比数组更强大)。
哈希表是经过优化的,访问下标的对象先散列过。
如果以任意类型键值访问其中元素会快于其他集合。
C#中,哈希表是一个<键(key)、值(value)>对的集合,每一个元素都是这样一个对。
哈希表(Hashtable)每个元素是一个键/值对,键不能为空引用null,但值可以为null。
在需要存储具有键/值对属性的数据时,例如<学号,学生对象>对、<数据属性名,数据值>等具有一一对应关系的数据时,常常需要使用哈希表。
队列
队列(Queue)实际上是一种特殊的列表。
对队列,进先出。
enqueue方法入队列,dequeue方法出队列。
1、创建队列
利用Queue的构造函数创建一个新的队列,常用的形式包括以下几种:
(1)publicQueue()
(2)publicQueue(intcapacity)
(3)publicQueue(intcapacity,floatgrowFactor)
参数capacity可以指定所创建列表的初始容量,如果不指定,则初始容量为.NET的默认值32。
而参数growFactor则指定当队列满后容量的增长率,新容量等于当前容量与growFactor的乘积,默认值为2.0。
2、元素入队
可以通过Queue的Enqueue,实现向一个元素的入队操作,形式如下:
publicvirtualvoidEnqueue(objectobj);
下面的示例中,首先定义了一个队列queue1,然后使用Enqueue方法,向其中添加了3个元素,其中第一个为字符串对象“Hello”,第二个为一个整数对象1,第3个为整型数组arr1。
Queuequeue1=newQueue();
objectitem=newobject();
item="Hello";
queue1.Enqueue(item);//字符串:
"Hello"入队
item=1;
queue1.Enqueue(item);//整数:
1入队
int[]arr1=newint[]{1,2,3};
queue1.Enqueue(arr1);//数组:
arr1={1,2,3}入队
3、元素出队
与Enqueue相反,可以通过Queue的Dequeue,实现一个元素的出队操作,形式如下:
publicvirtualobjectDequeue();
下面的示例中,首先定义了一个队列queue1,然后使用Enqueue方法,依次入队3个元素。
然后再使用Dequeue方法,输出所有的元素。
注意,这个输出的顺序和入队的顺序是一致的。
Queuequeue1=newQueue();
queue1.Enqueue("Hello");
queue1.Enqueue
(1);
queue1.Enqueue(newint[]{1,2,3});//依次入队:
"Hello"、1、{1,2,3}
objectoutItem=newobject();
while(queue1.Count>0){
outItem=queue1.Dequeue();
Console.WriteLine("{0}",outItem);
}//通过出队操作,输出队列中的所有元素,顺序与入队的顺序一致。
堆栈
同Queue相反,堆栈(Stack),后进先出。
push方法入栈,pop方法出栈。
1、创建堆栈
利用Stack的构造函数创建一个新的堆栈,常用的形式包括:
(1)publicStack();
(2)publicStack(intcapacity)。
参数capacity可以指定所创建列表的初始容量。
如果不指定,则初始容量为.NET的默认值10。
当堆栈中的元素达到其最大容量时,容量将自动增加一倍。
下面的代码创建了两个堆栈对象:
(1)StackStack1=newStack();
(2)StackStack2=newStack(100);
2、元素入栈
可以通过Stack的Push,实现向一个元素的入栈操作,形式如下:
publicvirtualvoidPush(objectobj);
下面的示例中,首先定义了一个堆栈Stack1,然后使用Push方法,向其中添加了3个元素,其中第一个为字符串对象“Hello”,第二个为一个整数对象1,第3个为整型数组arr1。
Stackstack1=newStack();
objectitem=newobject();
item="Hello";
stack1.Push(item);//字符串:
"Hello"入栈
item=1;
stack1.Push(item);//整数:
1入栈
int[]arr1=newint[]{1,2,3};
stack1.Push(arr1);//数组:
arr1={1,2,3}入栈
3、元素出栈
与Push相反,可以通过Stack的Pop,实现一个元素的出栈操作,形式如下:
publicvirtualobjectPop();
下面的示例中,首先定义了一个堆栈Stack1,然后使用Push方法,依次入栈3个元素。
再使用Pop方法,输出所有的元素。
这个输出的顺序和入栈的顺序是相反的。
Stackstack1=newStack();
stack1.Push("Hello");
stack1.Push
(1);
stack1.Push(newint[]{1,2,3});//依次入栈:
"Hello"、1、{1,2,3}
objectoutItem=newobject();
while(stack1.Count>0){
outItem=stack1.Pop();
Console.WriteLine("{0}",outItem);
}//利用Pop方法,循环输出stack1中所有的元素,注意到,输出的顺序与入栈的顺序是相反的
字符串
*字符串是应用程序和用户交互的主要方式,是评价一个编程语言非常重要的内容。
*.NET提供了几个类来快速实现字符串操作,包括String,System.Text命名空间等。
*字符串(String)是最常用的字符串操作类,可以帮助程序设计人员完成绝大部分的字符串操作功能,使用方便。
如下所示为String类的属性和常用方法。
属性:
Empty//Chars//Length//
方法:
(1)Compare//GetEnumerator//Remove
(2)Concat//IndexOf/IndexOfAny//Replace
(3)Copy/CopyTo//Insert//Split
(4)EndsWith/StartsWith//Join//Substring
(5)Equals//LastIndexOf/LastIndexOfAny//ToLower/ToUpper
(6)Format//PadLeft/PadRight//Trim/TrimEnd/TrimStart
运算符:
(1)相等运算符:
==
(2)不等运算符:
!
=(3)连接算符:
+
1、比较字符串
比较字符串是指按照字典排序规则,判定两个字符串的相对大小。
按照英文字母顺序,出现在前面的字母小于出现在后面的单词。
在String类中,常用的比较字符串的方法包括Compare,CompareTo,CompareOrdinal以及Equals。
1.Compare方法2.CompareTo方法3.CompareOrdinal方法4.Equals方法
2、格式化字符串
Format方法用于创建格式化的字符串以及连接多个字符串对象。
Format方法有多个重载形式,最常用的为:
publicstaticstringFormat(stringformat,paramsobject[]args);
其中,参数format用于指定返回字符串的格式,而args为一系列变量参数。
示例:
StringnewStr=String.Format("{0},{1}!
",strA,strB);
Console.WriteLine(newStr);//输出为Hello,World!
3、连接字符串
String类包含了两个连接字符串的静态方法Concat和Join。
1.Concat方法:
用于连接两个或多个字符串。
Concat方法也有多个重载形式,最常用的为:
publicstati
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MapXC 期末复习资料考试要点老师整理 期末 复习资料 考试 要点 老师 整理