2012年6月28日

C#非泛型集合类-ArrayList查找元素

摘要: 为了在数组列表中查找元素,最常使用的是IndexOf或LastIndexOf方法,另外,还可以使用BinarySearch方法执行搜索。—IndexOf方法从前向后搜索指定的字符串,如果找到,返回匹配的第一项的自0开始的索引,否则,返回-1。—LastIndexOf方法从后向前搜索指定的字符串,如果找到,返回匹配的最后一项的自0开始的索引,否则,返回-1。这两个方法各自都有三个重载版本,表示从指定的索引处开始搜索或者是从指定索引处搜索指定长度的字符串。using System;using System.Collections;class Program{static void Main(str 阅读全文

posted @ 2012-06-28 09:30 流星落 阅读(623) 评论(0) 推荐(0) 编辑

C#非泛型集合类-ArrayList简单排序

摘要: 使用Sort方法,可以对集合中的元素进行排序。Sort有三种重载方法,声明代码如下所示。public void Sort();//使用集合元素的比较方式进行排序public void Sort(IComparer comparer);//使用自定义比较器进行排序public void Sort(int index, int count, IComparer comparer)//使用自定义比较器进行指定范围的排序注意:为使用Sort方法进行排序,集合中的所有元素必须实现IComparable接口,否则,将抛出异常。这里介绍使用第一种方法进行简单的排序实例using System;using S 阅读全文

posted @ 2012-06-28 09:29 流星落 阅读(433) 评论(0) 推荐(0) 编辑

C#非泛型集合类-ArrayList删除元素

摘要: ArrayList提供了三种方法将指定元素从集合中移除,这三种方法是Remove、RemoveAt和RemoveRange方法。—Remove方法接受一个object类型值的参数,用于移除指定元素值的第一个匹配集合元素。—RemoveAt方法接受一个int类型的参数,用于删除指定索引的集合元素。—RemoveRange方法从集合中移除一定范围的元素。这三个方法的声明如下所示。public void Remove(object obj);//从ArrayList实例中删除与obj值匹配的第一个元素public void RemoveAt(int index);//删除指定索引位置index的元素 阅读全文

posted @ 2012-06-28 09:28 流星落 阅读(4213) 评论(0) 推荐(0) 编辑

C#非泛型集合类-ArrayList添加元素

摘要: 有两种方法可用于向ArrayList添加元素:Add和AddRange。—Add方法将单个元素添加到列表的尾部。—AddRange方法获取一个实现ICollection接口的集合实例,例如Array、Queue、Stack等,并将这个集合实例按顺序添加到列表的尾部。ArrayList定义的Add方法语法如下:public int Add(object value);//参数:value:需要添加到ArrayList中的值。参数value是添加的元素,这些元素不管什么数据类型,都会被转换为Object类型后保存。此方法返回值为整型数据,用于返回添加元素索引,添加的元素将插入ArrayList集合 阅读全文

posted @ 2012-06-28 09:27 流星落 阅读(1370) 评论(0) 推荐(0) 编辑

C#非泛型集合类-ArrayList数组扩容

摘要: 这是对ArrayList效率影响比较大的一个因素。每当执行Add、AddRange、Insert、InsertRange等添加元素的方法,都会检查内部数组的容量是否不够了,如果是,它就会以当前容量的两倍来重新构建一个数组,将旧元素Copy到新数组中,然后丢弃旧数组,在这个临界点的扩容操作,应该来说是比较影响效率的。例1:比如,一个可能有200个元素的数据动态添加到一个以默认16个元素大小创建的ArrayList中,将会经过:16*2*2*2*2 = 256四次的扩容才会满足最终的要求,那么如果一开始就以:ArrayList List = new ArrayList( 210 );的方式创建Ar 阅读全文

posted @ 2012-06-28 09:26 流星落 阅读(407) 评论(0) 推荐(0) 编辑

C#非泛型集合类-创建ArrayList列表

摘要: 为了创建ArrayList,可以使用三种重载构造函数中的一种,还可以使用ArrayList的静态方法Repeat创建一个新的ArrayList。这三个构造函数的声明如下:public ArrayList();//使用默认的初始容量创建ArrayList,该实例并没有任何元素,默认的构造器将会以默认(16)的大小来初始化内部的数组。public ArrayList(ICollection c);//使用实现了ICollection接口的集合类来初始化新创建的ArrayList。用一个ICollection对象来构造,并将该集合的元素添加到ArrayList。public ArrayList(in 阅读全文

posted @ 2012-06-28 09:25 流星落 阅读(428) 评论(0) 推荐(0) 编辑

C#非泛型集合类-ArrayList数组集合类

摘要: ArrayList类可以视作是Array与Collection对象的结合,可以理解为Array的优化版本。该类既有数组的特征又有集合的特性,例如,既可以通过下标进行元素访问,对元素排序、搜索,又可以像处理集合一样添加、在指定索引插入及删除元素,还可以根据需要自动扩充容量。由于ArrayList中元素的类型默认为object类型,因此,在获取集合元素时需要进行强制类型转换。并且object是引用类型,在与值类型进行转换时,会引起装箱和拆箱的操作,需要付出一些性能代价。ArrayList类的属性和方法如下:ArrayList的属性Count:返回目前ArrayList包含的实际元素的数量,这个属性 阅读全文

posted @ 2012-06-28 09:24 流星落 阅读(320) 评论(0) 推荐(0) 编辑

System.Collections简介

摘要: System.Collections命名空间包含可使用的集合类和相关的接口。该命名空间下的.NET非泛型集合类如下所示:— System.Collections.ArrayList:数组集合类,使用大小可按动态增加的数组实现Ilist接口。— System.Collections.BitArray:布尔集合类,管理位值的压缩数组,该值为布尔值。— System.Collections.Queue:队列,表示对象的先进先出集合。— System.Collections.Stack:堆栈,表示对象的简单的后进先出集合。— System.Collections.Hashtable:哈希表,表示键/值 阅读全文

posted @ 2012-06-28 09:22 流星落 阅读(362) 评论(0) 推荐(0) 编辑

C#集合的概念

摘要: 集合原本是数学上的一个概念,表示一组具有某种性质的数学元素,引用到程序设计中表示一组具有相同性质的对象。集合好比容器,将一系列相似的组合一起,是一个特殊的类,和数组一样,可以通过索引访问集合成员,不同的是,集合的大小可以动态调整,可以在运行时添加或删除元素。集合中包含的对象称为集合元素。集合分为泛型集合类和非泛型集合类,泛型集合类一般位于System.Collections.Generic名称空间,非泛型集合类位于System.Collections名称空间。此外,System.Collections.Specialized名称空间中也包含一些有用的集合类。现在用一个Student数组来存储某 阅读全文

posted @ 2012-06-28 09:21 流星落 阅读(372) 评论(0) 推荐(0) 编辑

C#集合概述

摘要: 数组是一组具有相同名称和类型的变量集合,使用数组可以存储大量对象,可以通过索引来检索数组中的元素。但是数组初始化后不能再改变其大小。在程序中不能实现动态添加和删除元素,使数组有很多局限性。为解决这个问题,.net提供了各种集合对象,如ArrayList、HashTabel等。集合概述:事实上,C#中的数组上System.Array类的实例,是集合类中的一种。如果将紧密相关的数据存储到集合中,可以有效地处理这些数据。System.Array是数组的基类,System.Collections是一个命名空间,其提供一组接口和类,使用户能够对集合元素进行操作。System.Array类的使用:Syst 阅读全文

posted @ 2012-06-28 09:20 流星落 阅读(266) 评论(0) 推荐(0) 编辑

C#异常处理-自定义异常

摘要: 程序中可能出错的情形很多,如果系统提供地异常类不能够和程序中的异常相匹配,就需要程序员自定义异常类。自定义异常类的语法如下:class 自定义异常名:基类异常名{//语句块}自定义异常时应遵循的编码如下:将异常类命名为单词“Exception”结尾,如EmailException,UserMessageException。自定义异常类的代码如下:ApplicationException //定义异常类派生自基类public class EmailException:Application{public EmaiException(string msg):base(msg)//自定义异常类的构造 阅读全文

posted @ 2012-06-28 09:15 流星落 阅读(735) 评论(0) 推荐(0) 编辑

C#异常处理-使用throw引发异常

摘要: C#提供了throw语句来引发异常。使用throw语句既可以引发系统异常,也可以引发自定义异常。使用throw语句抛出异常的语法如下:throw ExObject;ExObject:所要抛出的异常对象,这个异常对象是派生自System.Exception类的类对象。实例代码如下:using System;class Program{static void Main(){ int[]array = new int[4]; try { for (int i = 0; i < 5; i++) { array[i] = i; if (i < array.Length) throw new 阅读全文

posted @ 2012-06-28 09:14 流星落 阅读(1435) 评论(0) 推荐(0) 编辑

C#异常处理-关键字finally的使用

摘要: 将finally语句与try…catch语句结合,形成try…catch…finally语句。finally语句同样以区块的方式存在,它被放在所有try…catch语句的最后面,程序执行完毕,最后都会跳到finally语句区块,执行其中的代码。无论程序是否产生异常,最后都会执行finally语句区块中的程序代码。其基本格式如下:try{被监控的代码}catch(异常类名 异常变量名){异常处理}…finally{程序代码}对于try…catch…finally语句的理解并不复杂,它只是比try…catch语句多了一个finally语句,如果程序中有一些在任何情形中都必须执行的代码,那么就可以将 阅读全文

posted @ 2012-06-28 09:13 流星落 阅读(772) 评论(0) 推荐(0) 编辑

C#异常处理-采用try、catch语句结构来捕获和处理异常

摘要: 使用try...catch语法结构如下:try{//程序代码}catch(Exception e){//错误代码处理}异常处理的语法:try{有可能产生错误的代码}catch(异常处理声明(声明此catch区段要捕获哪一种类型的异常错误,可以不用声明,这样子便会让catch去捕获任意类型的异常错误)){异常处理程序代码(当catch捕获到异常错误后,所采取对应的程序代码)}注意:利用catch来捕获try-catch中产生的异常错误,可以建立多个catch区段以捕获不同类型的异常错误。一个除数和零的简单例子:using System;public class DivisorIsZero{pri 阅读全文

posted @ 2012-06-28 09:12 流星落 阅读(858) 评论(0) 推荐(0) 编辑

C#异常处理-多重catch块

摘要: 有时候只使用一个异常处理不完全解决程序中出现的异常,需要多个异常处理,这就需要多重catch来实现。一段代码可能会生成多个异常当引发异常时,会按顺序来查看每个 catch 语句,并执行第一个类型与异常类型匹配的语句执行其中的一条 catch 语句之后,其他的 catch 语句将被忽略。多重catch语法如下:try{//正常程序处理语句} catch(ArrayIndexOutOfBoundsException e) {//系统子类异常} catch(Exception e) {//系统基类异常}注意:1. 一段代码可能会生成多个异常2. 当引发异常时,会按顺序来查看每个 catch 语句,并 阅读全文

posted @ 2012-06-28 09:12 流星落 阅读(6482) 评论(0) 推荐(0) 编辑

C#异常类相关总结

摘要: C#异常类一、基类ExceptionC#异常类二、常见的异常类1、SystemException类:该类是System命名空间中所有其他异常类的基类。(建议:公共语言运行时引发的异常通常用此类)2、ApplicationException类:该类表示应用程序发生非致命错误时所引发的异常(建议:应用程序自身引发的异常通常用此类)C#异常类三、与参数有关的异常类此类异常类均派生于SystemException,用于处理给方法成员传递的参数时发生异常1、ArgumentException类:该类用于处理参数无效的异常,除了继承来的属性名,此类还提供了string类型的属性ParamName表示引发异 阅读全文

posted @ 2012-06-28 09:11 流星落 阅读(250) 评论(0) 推荐(0) 编辑

C#异常处理-异常类

摘要: .net提供了大量与异常有关的类,用来处理异常,每一个异常类都表示一个异常,Exception类是所有异常的基类,异常类继承关系的层次结构图:C#中所有的异常处理都被视为类,所有异常都是由System.Exception所派生的。程序运行出现错误时,系统或当前的应用程序通过引发包含有关该错误的异常来报告错误。异常基类派生了系统异常和自定义异常,程序中出现系统异常类中涉及的异常,如“试图用某个数字除以零时”,就会发生DivideByzeroException异常,显示该异常给出的错误信息。程序中可能出现的异常种类繁多,.net不可能预定义所有的程序异常,程序员可以自己定义异常。自定义异常继承自S 阅读全文

posted @ 2012-06-28 09:08 流星落 阅读(467) 评论(0) 推荐(0) 编辑

C#异常处理-什么是异常

摘要: 利用调试和测试,可以有效地减少程序中的错误,但是程序中的错误是不可避免的,错误是客观存在的,程序员有义务和责任减少错误的发生。面对不可避免的,可以出现的错误,如何去面对,以保证程序运行可靠,具有非常重要的意义。什么是异常?先来看生活中的异常。我们去旅游度假,往返车票,度假期活动都已安排,按计划是一个非常舒适的假期。但是在度假期间,由于不适应气候,你感冒了,因为这个异常的情况,不得不终止度假,这便是出现了异常。如果你在度假前已经考虑到可以出现感冒的情况,并且准备了药物,经过治疗,不必终止度假,可以继续旅游,就是进行了异常处理。这个例子中,感冒是一个异常,因为预先考虑到可以出现这个问题,进行了合适 阅读全文

posted @ 2012-06-28 09:07 流星落 阅读(274) 评论(0) 推荐(0) 编辑

VS2008单元测试

摘要: 调试是解决错误的过程,测试是发现软件缺陷的过程。每一个软件在交付使用时前都必须经过测试。软件测试是软件开发的重要组成部分,现在已经发展成专门的技术。在消除了程序中的语法错误和运行错误后,程序仍然不能保证完全正确,程序员可以进行简单的单元测试,来确定基本功能是否完善,复杂的测试由专业人员进行。什么是单元测试呢?单元测试是测试隔离的单元或模块,对各种方法分别使用不同的输入和执行参数来测试。单元测试的依据是详细设计描述,单元测试应对模块内所有重要的控制路径设计测试用例,以便发现模块内部的错误。单元测试多采用白盒测试技术,系统内多个模块可以并行地进行测试。VS2008将单元测试工具集成在IDE中,方便 阅读全文

posted @ 2012-06-28 09:06 流星落 阅读(173) 评论(0) 推荐(0) 编辑

vs2008调试工具

摘要: 可以说,任何开发环境中最重要的工具都是调试器。Visual Studio的调试器非常强大,无论花费多少时间来学习它都是值得的。话虽然这么说,但是调试的基础知识是十分简单的。关键的三项技能是:如何设置断点及怎样运行到断点怎样单步执行到并越过方法调用怎样查看和修改变量、成员数据等的值VS2008调试器支持.net任何一种语言编写的的代码,使用调试器可以在代码中插入“断点”,断点通知调试器进入中断模式,处于暂停状态。VS2008设置断点的步骤如下:单击需要添加断点的代码左边的灰色区域,或者右击准备设置断点的代码行,在弹出的快捷菜单中,单点“断点”后,再单击“插入断点”即可。插入断点后的代码高亮显示, 阅读全文

posted @ 2012-06-28 09:05 流星落 阅读(626) 评论(0) 推荐(0) 编辑

导航