版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务5探索.NETAPI常用类C#程序设计.NET类库是生成.NET应用程序、组件和控件的基础,提供了一组丰富的接口以及抽象类和具体(非抽象)类,以实现对系统功能的访问,加快和优化软件的开发过程。开发人员既可以直接使用已有类,也可从这些类派生用户自定义的类。若要使用接口的功能,既可以创建实现接口的类,也可以从某个实现接口的.NET类中进行派生。开发人员可访问微软官方提供的.NETAPI浏览器,在线查看各版本API文档。这些文档对所有的类和接口以及它们的成员提供了详细的说明,是学习和使用C#语言的常用参考资料之一。本任务将以实现对学生公寓考核信息的添加、删除、修改与查找等功能为例,学习.NETAPI提供的C#常用类的用法。任务描述字符串数组集合
相关知识字符串0102字符串的形式与声明String和StringBuilder类字符串String类作为.NET类库中最常用的类之一,用来表示字符串类型,它将一组字符视为一个整体进行处理。与字符不同,字符串是放在一对双引号中。而字符是放在一对单引号中的。在C#程序中,string关键字是String类的别名。字符串的形式与声明字符串采用两种表达形式:常规字符串就是用双引号包含的一系列字符,其中可以包含转义符。逐字字符串是在常规字符串前面加上一个@。逐字字符串常数的双引号中,每个字符都代表其最原始的意义,包括换行、制表符等等,但在逐字字符串常数中不能使用转义字符。String和StringBuilder类1.Stirng类C#程序中,String类型变量可以看作是char变量的只读数组。这样,就可以使用下面的方式来访问每个字符:stringmyString="abcde"; //声明一个string变量charmyChar=myString[1]; //获取string变量的第二个字符此外,我们还可以使用String对象的ToCharArray方法,把string类型的变量转存到字符数组中:stringmyString="Iamastring"; //声明一个string变量char[]myChar=myString.ToCharArray();//把string变量存放到字符数组中String和StringBuilder类.NET为String类提供了大量的方法和属性,在处理字符串的时候直接使用即可。System.String类的常用属性和方法:已有string变量S1,S1.Length;S1.Substring(Start,Length);S1.Split(分隔符);S1.IndexOf(String);S1.Insert(Start,s2)......String和StringBuilder类【例】身份验证对于维护良好的网络安全至关重要,可以确保只有经过授权的用户才能访问机密数据和资源。创建控制台应用程序,实现根据身份证号码识别出生年月信息的功能,使用类的继承。String和StringBuilder类String和StringBuilder类2.
StringBuilder类String类对象一经创建,其内容就是不可变的。String类提供的各种操作方法实质上并不是修改字符串本身,而是生成新的字符串。对于长字符串或是需要频繁操作的字符串,在程序中生成的大量的字符串常量会极大的消耗系统资源。为了方便对同一个字符串的频繁操作,.NET类库专门提供了一个StringBuilder类(位于System.Text命名空间下),它对字符串进行动态管理,即允许直接修改字符本身的内容,而不是每次操作都生成新字符串。String和StringBuilder类2.
StringBuilder类可通过无参数构造函数来创建初始内容为空的StringBuilder对象,也可基于一个现有字符串来创建StringBuilder对象。例如:StringBuilderstr1=newStringBuilder(); //初始内容为空//指定初始内容StringBuilderstr2=newStringBuilder("VisualC#程序设计应用教程");
String和StringBuilder类StringBuilder与String类的用法有很多类似之处。StringBuilder类还提供了特有的方法,其中方法Append、AppendLine和AppendFormat,用来在字符串的尾端追加新内容。例:StringBuildersbl=newSystem.Text.StringBuilder();for(inti=0;i<100;i++){sbl.Append(i);sbl.Append("");}字符串数组集合相关知识数组0102一维数组多维数组0304交错数组Array类数组是一种数据结构。在程序设计中,数组的作用非常重要。如经常需要使用大量相同类型的数据,那么使用数组变量是最合适的。可以将同一类型的多个变量存储在一个数组数据结构中。通过指定数组的元素类型来声明数组。如果希望数组存储任意类型的元素,可将其类型指定为object。数组由具有一个下标的数组元素所构成的数组就是一维数组。在C#中,声明一维数组的语法是在类型后面放置一对空的方括号,如下所示:int[]numbers; //声明一个整型数组string[]StringArray; //声明一个字符串数组一维数组在定义数组后,必须对其进行初始化才能使用。初始化数组有两种方法:动态初始化和静态初始化。1.动态初始化数组动态初始化需要借助new运算符,为数组元素分配内存空间,
并为数组元素赋初值。动态初始化数组的格式如下:
实际使用时,经常将数组定义与动态初始化合写在一起,
格式如下:一维数组数组名=new数据类型[数组长度];数据类型数组名=new数据类型[数组长度];例如://声明一个整型数组并初始化,数组元素初值都为零int[]intID=newint[10]; //声明一个整型数组并初始化赋值int[]intNumber=newint[5]{1,2,3,4,5};2.静态初始化数组静态初始化时,必须与数组定义结合在一起,无须说明数组元素的个数,只需按顺序列出数组中的全部元素即可,系统会自动计算并分配数组所需的内存空间。格式如下:
一维数组数据类型数组名={元素1[,元素2……]};例如:int[]intNumber={1,2,3,4,5}; //声明一个整型数组并初始化赋值string[]StringCourse={"C#","ASP.NET","Java"}; //声明一个字符串数组并初始化赋值一维数组例:classProgram{staticvoidMain(string[]args){ int[]myArray=newint[5]; for(inti=0;i<myArray.Length;i++){myArray[i]=i+10;Console.WriteLine(myArray[i]); }Console.ReadLine(); }C#支持多维数组。多维数组的声明、初始化和访问与一维数组非常相似。实际应用中,二维数组是最常见的多维数组。二维数组的声明格式如下:
上面格式中的逗号用于分隔两个维度,表明这是一个二维数组。对于多维数组,可以作类似的推广,例如:int[,]myIntArr; //声明一个二维整型数组char[,]myCharArr; //声明一个二维字符数组double[,,]myDoubleArr; //声明一个三维双精度数组二维数组的初始化与一维数组相似,例如:int[,]myIntArr=newint[,]{{2,3},{7,8},{1,9}};多维数组数据类型[,]数组名;多维数组例:static
voidMain(string[]args){
int
i,j;//声明两个整形变量用作循环的自增变量
int[,]table=new
int[3,4]{{1,2,3,4},{5,6,7,8},{9,10,11,12}};
for(i=0;i<table.GetLength(0);i++)//外循环遍历数组第一维
{
for(j=0;j<table.GetLength(1);j++)//内循环遍历数组第二维
{Console.Write($"{table[i,j]}\t");//输出数组元素值
}Console.WriteLine();//换行
}
}交错数组是一个数组,数组中的元素自身也是数组且大小可能不同。可以将交错数组看作是“数组的数组”,即高维数组中的每个元素本身也是一个低维数组。交错数组的声明格式如下:
例如:如下代码声明了一个整型交错数组,数组实际上是一个由2个元素组成的一维数组,其中每个元素又是一个一维数组。int[][]myJaggedArr=newint[2][];可通过如下代码对myJaggedArr数组进行初始化。myJaggedArr[0]=newint[2]{1,2};myJaggedArr[1]=newint[3]{3,4,5};上面的示例中,交错数组myJaggedArr的第一维的长度为2,第二维的长度为3。也可使用如下格式:int[][]myJaggedArr=newint[2][]{newint[]{1,2},newint[]{3,4,5}};交错数组数据类型[]…[]数组名;说明:若缺省{}以及{}中的内容,则newint[2][]中的第一维下标不可省略;若{}中定义了内容,则newint[2][]中的第一维下标可以省略,但第二维下标在任何情况下都不应填写。示例:交错数组C#语言中用于处理数组的类是Array类(位于System命名空间下)。Array类是公共语言运行时中所有数组的基类,提供了用于创建、处理、搜索数组并对数组进行排序的方法。Array类名称类型说明IsFixedSize属性获取一个值,该值指示Array是否具有固定大小IsReadOnly属性获取一个值,该值指示Array是否为只读Length属性获得一个32位整数,该整数表示Array的所有维数中元素的总数CopyTo方法将当前一维Array的所有元素复制到指定的一维Array中Reverse方法将Array类中的所有元素反转Sort方法对一维Array对象中的元素进行排序字符串数组集合相关知识集合0102集合基础泛型集合C#提供了两种方法对对象进行分组:通过创建对象的数组,以及通过创建对象的集合。数组适用于创建和使用固定数量的强类型化对象。与数组不同,集合提供了更灵活的方式来使用对象组,能够使对象组随着应用程序的需求而动态地更改大小。集合类型是数据集合(如哈希表、队列、堆栈、包、字典和列表)的常见变体。必须先声明集合类的实例,然后再向该集合中添加元素。在命名空间System.Collections.Generic、System.Collections.Concurrent与System.Collections下提供了许多通用的集合类,每种类型的集合用于特定的用途。集合基础在实施数组或集合处理时,大都需要预先确定处理的数据类型(整数、实数,或字符串)的运算问题。运行时还可能需要频繁地依赖装箱与拆箱进行数据类型转换,导致运行效率降低。可以利用.NET中的泛型类型,即“参数化类型”的方法将数据类型抽象化,从而实现更为灵活的代码复用,在提高程序安全性的同时,获得更高的效率。泛型所谓泛型,是指在类型名后添加用尖括号“<>”括起来的类型参数列表以定义一组“通用化”的类型。定义泛型时,在类型名后添加的尖括号内的类型参数可为一个或多个。如果有多个类型参数,各类型参数之间用逗号分隔。例如:在下面这段代码中,Datas类的类型参数为T1和T2。定义泛型类以后,就可以通过传递类型实参来创建该类的实例。例如:泛型的定义与引用publicclassDatas<T1,T2>{publicT1First;publicT2Second;}Datas<int,string>myData=newDatas<int,string>{First=1,Second="two"};intNum=myData.First;stringStr=myData.Second;.NETFramwork提供了很多泛型,这些泛型集合类都位于System.Collections.Generic命名空间下。泛型集合泛型集合类非泛型集合类泛型集合用法举例List<T>ArrayListList<string>Type=newList<string>();Dictionary<TKey,Tvalue>HashTableDictionary<string,string>D=newDictionary<string,string>();D.Add("txt","notepad.exe");Queue<T>QueueQueue<string>Q=newQueue<string>();Q.Enqueue("one");Stack<T>StackStack<string>S=newStack<string>();S.Push("one");S.Pop();1.List<T>列表List<T>是动态数组ArrayList的泛型等效类,是强类型化的列表。因为.NET在定义List<T>时没有指定集合元素的类型,只是用参数“T”来代表未来的集合元素的类型,因此在使用List<T>时,必须明确指定数据类型。创建一个列表对象的格式如下:
例如,下列语句创建了一个泛型集合并指定该集合只能存放Student类型的元素:List<Student>list=newList<Student>();泛型集合List<元素类型>对象名=newList<元素类型>();List<T>泛型列表提供了很多方法,常用的方法有:Add方法:将元素添加到列表中。Insert方法:在列表中插入一个新元素。Contains方法:测试该列表中是否存在某个元素。Remove方法:从列表中移除带有指定键的元素。Clear方法:移除列表中的所有元素。如果List<T>是数值列表,还可以对其进行求和、求平均值,以及求最大值、最小值等。泛型集合例如:List<int>lst=newList<int>();lst.AddRange(newint[]{12,8,5,20});Console.WriteLine(lst.Sum()); //结果为45Console.WriteLine(lst.Average());//结果为11.25
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 食物标签解读:选择健康食品的技巧
- 麻醉病人的安全转运护理
- 长春中医药大学《中外艺术鉴赏》2025-2026学年期末试卷
- 中北大学《工作分析与组织设计》2025-2026学年期末试卷
- 福州工商学院《临床药理学》2025-2026学年期末试卷
- 福州软件职业技术学院《流通概论》2025-2026学年期末试卷
- 福建信息职业技术学院《国际投资学教程》2025-2026学年期末试卷
- 赣东学院《系统项目集成管理》2025-2026学年期末试卷
- 泉州工艺美术职业学院《档案学》2025-2026学年期末试卷
- 赣东学院《现代文学》2025-2026学年期末试卷
- GB/T 47165-2026木质素硫酸盐木质素、碱木质素和水解木质素中木质素含量的测定
- 大族激光苹果创新加速与算力PCB扩产激光龙头迎接新一轮高成长
- 2026年长春职业技术学院单招综合素质考试题库含答案解析
- 建筑安全生产标准化制度
- 打桩工三级安全教育试题及答案
- 《急诊科建设与管理指南(2025版)》
- 错峰生产管理制度
- 【《“对分课堂”教学模式的教学实验探究报告》19000字(论文)】
- 《分数乘法(三)》名师课件
- 2025年高职(酒店管理与数字化运营)酒店数字化阶段测试题及答案
- 2025年《消防救援队伍安全管理规定》考试题库及答案
评论
0/150
提交评论