

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、I类的分析与实现目录软件三班 刘一锋第一部分.NET类库 .1一、类库结构和System名空间 .11.System名空间的类 .32.System名空间的接口 .93. System名空间的结构 .94. System名空间的委托 .115. System名空间的枚举 .11二、Console类 .131.屏幕缓冲区和控制台窗口 .142. Console类功能 .153.标准流的控制 .164.读写方法 .18三、Convert类 .251.Convert类的类型转换 .252.Convert类的方法介绍 .27四、Math类和Random类 .291.System. Math类 .302
2、.System. Random类 .31五、TimeSpan类 .331. TimeSpan对象的单位和格式 .332. TimeSpan公共字段和属性 .333.构造函数和创建TimeSpan对象 .344. TimeSpan公共方法和运算符 .36六、DateTime类 .391.构造函数和DateTime对象的创建 .392. DateTime的公共字段和属性 .403. DateTime的方法和运算符 .41七、System.Collections名空间概念 .421.容量和计数 .422.下限 .43II八、System.Collections中的接口 .441.IEnumerabl
3、e接口.452.IEnumerator接口 .453.IEnumerator.Reset方法 .454.InvalidOperationException类 .465.ICollection接口 .466.IComparer接口 .477.IList接口 .478.IDictionary接口 .489.IDictionaryEnumerator接口 .49九、System.Collections中的类 .521.ArrayList类522.Queue类563.Stack类 .57第二部分 流和文件 .59一、 基本概念 .591.概念 .602.数据传输方向 .603.数据流的基本操作 .61
4、二、 文件的基本操作 .611.文件的创建 .622.读文件 .623.写文件 .644.读写二进制文件 .665.读取文本文件 .686.写入文本文件 .701第一部分.NET类库应用用C#开发软件的一大优势就是能获得.NET框架的各种支持,而.NET类库就是其中重要的软件开发资源,它继承了大部分Win dows API函数的功能,还提供了更高级别的 操作。离开了这些类库,就很难编写实用的C#应用程序,即使是简单的控制台程序也要依赖于.NET类库。关于类库的概念一直就存在,以前的VC有MFC类库、Delphi有类库VCL、Java有Swing、AWT等类库。这些类库封装了系统底层的功能并提供
5、更好的操作方式。NET中的类库封装了对Windows、网络、文件、多媒体的处理功能,是所有.NET语言都必须使用的核心类库。.NET框架类库的确如其名称所暗示:一个关于类和类型的程序库,可让开发人员的 日子好过一些。虽然这些类本身以C#编写而成,但它们可被任何基于CLR的语言使用。以C#、VB、C+或.NET框架所支持的任何其他语言编写出来的代码,都可以制造出这 些类的实例,并调用它们的方法。一、 类库结构和System名空间.NET框架类库的内容被组织成一个树状命名空间(namespace tree)。每一个命名空间可以包含许多类型(例如类和接口)及其他命名空间。上图展示了.NET框架类库树
6、状命名空间很小的一部分。1System:树”的根,此命名空间包含.NET框架类库中的其他所有命名空间。2Svstem.Web:这个命名空间包含的类型能够用来创建Web应用程序,与其他许多命名空间一样,它也拥有次级命名空间。例如,开发人员可以使用System.Web.UI中的类型来构建ASP.NET浏览器应用程序,而System.Web.Services中的类型则可用来构建ASP.NET Web Services应用程序。23System.Data:这个命名空间内的类型造就了ADO.NET。例如Conn ection类用于建立对数据库管理系统(database management system
7、,DBMS)的连接,DataSet类的 实例则可用于缓存(cache)和检视对DBMS执行的查询的结果。4System.Windows.Forms:这个命名空间内的类型构成了Windows Forms,它们用于构建Windows GUIs(图形用户界面)。当以任何基于CLR的编程语言编写.NET框架应用 程序时,都可以使用这一套通用类型来创建Windows图形界面,而不必依赖于某种特定的语言机制。5System.En terpriseServices:这个命名空间内的类型提供了某些企业应用所要求的服务。6System.XML:这个命名空间内的类型支持生成和处理以XML定义的数据。此外还有更多命
8、名空间定义,支持文件访问(file access)、对象状态序列化(objectstate serializing)、远程对象访问(remote access to object),以及其他更多功能。详细解释如下表:说说館館System包含录基本包含录基本的类,的类,这些类提供数据类型、事件和爭件处这些类提供数据类型、事件和爭件处 理、接口理、接口* *雇雇性性 异常处理等操性异常处理等操性System. Windows., Forms包含用于创建基于包含用于创建基于的应用程序的类的应用程序的类SystemaCollections耳中的类用于背理对象集合耳中的类用于背理对象集合,包括常用的集含
9、类型:堆包括常用的集含类型:堆 栈、从列栈、从列. .散列表等散列表等System. Dring耳中的类用于操作二维團形耳中的类用于操作二维團形,用于在用于在附附 格窗体应用程序格窗体应用程序 应用程序应用程序中显示图像或进行打中显示图像或进行打 E 卩卩System. IO提供用于操作提供用于操作 1/0 流、遇圧目录和读写文件的类流、遇圧目录和读写文件的类System. NET提供用于网络通信的类,如理咂信等提供用于网络通信的类,如理咂信等System. Reflection操操作反射作反射 握拱用于查看元数括以及延迟绑定类型和它们握拱用于查看元数括以及延迟绑定类型和它们 的成员的类的成员
10、的类Sys 七七EE.Text提供用于以不同的编碣方式提供用于以不同的编碣方式( (如旳:如旳:! !工或者工或者 Umcod.)来操来操 作文本的作文本的类类System. Threading換作线程換作线程 用于用于异歩操异歩操作以及同步访问资源作以及同步访问资源System. Xml提供用于处理伽喋构和数据的类提供用于处理伽喋构和数据的类System. Web Services提拱用于刨建和操作壯提拱用于刨建和操作壯 b 服务绥服务绥System, feb. UI提供用于操作仏提供用于操作仏 b 窗擁创建基于窗擁创建基于 hb 的应用程序的类的应用程序的类.NET Framework类库
11、提供了各种类、接口、委托、结构和枚举,System名空间除了包含系统预定义的类和基类,还包括常用的值和引用数据类型、事件处理程序、接 口、属性和异常处理,以及提供服务支持数据的各种其他类。System名空间还包含许多二级名空间。31.System名空间的类除基础数据类型外,System名空间还包含近100个类,范围从处理异常的类到处 理核心运行库概念的类,如应用程序和垃圾回收器。System名空间还包含许多二级名空间。名空间的类说明 在试图读写受保护内存时引发的异常。标识当前应用程序的激活上下文。无法继承此 类。包含特定的方法,用以在本地或从远程创建对 象类型,或获取对现有远程对象的引用。无法
12、 继承此类。表示应用程序域,它是一个应用程序在其中执 行的独立环境。无法继承此类。 提供非托管宿主的等效托管宿主。表示可以添加到AppDomain的实例的程序 集绑定信息。在尝试访问已卸载的应用程序域时引发的异 常。发生非致命应用程序错误时引发的异常。 包含用于唯一地标识某个应用程序的信息。无 法继承此类。提供唯一标识清单激活的应用程序的能力。无 法继承此类。在向方法提供的其中一个参数无效时引发的异 常。当将空引用(在Visual Basic中为Nothing) 传递给不接受它作为有效参数的方法时引发的 异常。当参数值超出调用的方法所定义的允许取值范 围时引发的异常。因算术运算、类型转换或转换
13、操作中的错误而System类AccessViolationExceptionActivationContextActivatorAppDomainAppDomainManagerAppDomainSetupAppDomainUnloadedExceptionApplicationExceptionApplicationIdApplicationIdentityArgumentExceptionArgumentNullExceptionArgumentOutOfRangeExceptionArithmeticException4引发的异常。 提供创建、操作、搜索和排序数组的方法,因 而在公共语言
14、运行库中用作所有数组的基类。 当试图在数组中存储类型不正确的元素时引发的异常。为AssemblyLoad事件提供数据。 表示自定义属性的基类。指定另一属性类的用法。无法继承此类。 当DLL或可执行程序的文件图像无效时引发 的异常。将基础数据类型与字节数组相互转换。 操作基元类型的数组。卸载应用程序域的尝试失败时引发的异常。 支持循环访问String对象并读取它的各个字 符。无法继承此类。指示程序元素是否符合公共语言规范(CLS)。无法继承此类。表示控制台应用程序的标准输入流、输出流和 错误流。无法继承此类。为Console.CancelKeyPress事件提供数据。 无法继承此类。定义所有上下
15、文绑定类的基类。 在尝试将对象封送过上下文边界失败时引发的 异常。指示静态字段的值是特定上下文的唯一值。 将一个基本数据类型转换为另一个基本数据类 型。在从不是数据大小倍数的地址读取数据单元或 将数据单元写入此类地址时引发的异常。无法 继承此类。表示空值。 表示委托,委托是一种数据结构,它引用静态 方法或引用类实例及该类的实例方法。ArrayArrayTypeMismatchExceptionAssemblyLoadEventArgsAttributeAttributeUsageAttributeBadImageFormatExceptionBitConverterBufferCannotUn
16、loadAppDomainExceptionCharEnumeratorCLSCompliantAttributeConsoleConsoleCancelEventArgsContextBoundObjectContextMarshalExceptionContextStaticAttributeConvertDataMisalignedExceptionDBNullDelegate5试图用零除整数值或十进制数值时引发的异 常。当未找到在DLL导入中指定的DLL时所引 发的异常。当对象在同步对象数组中不止一次出现时引发 的异常。因不存在项方法而导致加载类的尝试失败时引 发的异常。提供有关当前环
17、境和平台的信息以及操作它们 的方法。无法继承此类。EventArgs是包含事件数据的类的基类。 表示在应用程序执行期间发生的错误。 当公共语言运行库的执行引擎中发生内部错误 时引发的异常。无法继承此类。当试图非法访问类中的私有字段或受保护字段 时引发的异常。基于File方案的可自定义分析器。 指示可以将枚举作为位域 (即一组标志) 处理。 当参数格式不符合调用的方法的参数规范时引 发的异常。基于文件传输协议(FTP)方案的可自定义分 析器。控制系统垃圾回收器(一种自动回收未使用内 存的服务)。用于分层URI的可自定义分析器。 基于Gopher方案的可自定义分析器。 基于HTTP方案的可自定义分
18、析器。 试图访问索引超出数组界限的数组元素时引发 的异常。无法继承此类。 当检测到没有足够的可用内存时引发的异常。 无法继承此类。 因无效类型转换或显式转换引发的异常。当方法调用对于对象的当前状态无效时引发的DivideByZeroExceptionDllNotFoundExceptionDuplicateWaitObjectExceptionEntryPointNotFoundExceptionEnvironmentEventArgsExceptionExecutionEngineExceptionFieldAccessExceptionFileStyleUriParserFlagsAttr
19、ibuteFormatExceptionFtpStyleUriParserGCGenericUriParserGopherStyleUriParserHttpStyleUriParserIndexOutOfRangeExceptionInsufficientMemoryExceptionInvalidCastExceptionInvalidOperationException6异常。当程序包含无效Microsoft中间语言(MSIL)或元数据时将引发的异常。这通常表示生成程 序的编译器中有bug。基于 轻型目录访问协议(LDAP)方案的可自 定义分析器。用于为可执行应用程序的主方法设置默认的加
20、 载程序优化策略。封装内存槽以存储本地数据。无法继承此类。允许在支持远程处理的应用程序中跨应用程序 域边界访问对象。为三角函数、对数函数和其他通用数学函数提 供常数和静态方法。访问类成员的尝试失败时引发的异常。非法尝试访问类中的私有方法或受保护的方法 时引发的异常。试图动态访问不存在的字段时引发的异常。试图动态访问不存在的类成员时引发的异常。 试图动态访问不存在的方法时引发的异常。 指示应用程序的COM线程模型为多线程单 元(MTA)。表示多路广播委托;即,其调用列表中可以拥 有多个元素的委托。尝 试 组 合 两 个 基 于Delegate类 型 而 非MulticastDelegate类型的
21、委托时引发的异常。 无法继承此类。基于Indigo系统的NetPipe方案的分析器。 基于Indigo系统的NetTcp方案的分析器。 基于使用网络新闻传输协议(NNTP)的新闻方案的可自定义分析器。指示可序列化类的某个字段不应被序列化。无 法继承此类。当 浮点值 为正无穷大、负 无穷大或 非数字InvalidProgramExceptionLdapStyleUriParserLoaderOptimizationAttributeLocalDataStoreSlotMarshalByRefObjectMathMemberAccessExceptionMethodAccessExceptionM
22、issingFieldExceptionMissingMemberExceptionMissingMethodExceptionMTAThreadAttributeMulticastDelegateMulticastNotSupportedExceptionNetPipeStyleUriParserNetTcpStyleUriParserNewsStyleUriParserNonSerializedAttributeNotFiniteNumberException7(NaN)时引发的异常。 在无法实现请求的方法或操作时引发的异常。 当调用的方法不受支持,或试图读取、查找或 写入不支持调用功能的
23、流时引发的异常。 支持可为其分配 空引用(在Visual Basic中 为Nothing) 的值类型,如引用类型。无法继 承此类。尝试取消引用空对象引用时引发的异常。支持.NET Framework类层次结构中的所有 类,并为派生类提供低级别服务。这是.NET Framework中所有类的最终基类; 它是类型层 次结构的根。对已释放的对象执行操作时所引发的异常。 标记不再使用的程序元素。无法继承此类。表示有关操作系统的信息,如版本和平台标识 符。无法继承此类。取消线程正在执行的操作时在线程中引发的异 常。没有足够的内存继续执行程序时引发的异常。 在选中的上下文中所进行的算术运算、类型转 换或转
24、换操作导致溢出时引发的异常。指示方法在调用中将允许参数的数目可变。无 法继承此类。当功能未在特定平台上运行时所引发的异常。 表示伪随机数生成器,一种能够产生满足某些 随机性统计要求的数字序列的设备。将维数错误的数组传递给方法时引发的异常。 为TypeResolve、ResourceResolve和AssemblyResolve事件提供数据。指示一个类可以序列化。无法继承此类。 因包含的嵌套方法调用过多而导致执行堆栈溢 出时引发的异常。无法继承此类。指示应用程序的COM线程模型是单线程单NotImplementedExceptionNotSupportedExceptionNullableNul
25、lReferenceExceptionObjectObjectDisposedExceptionObsoleteAttributeOperatingSystemOperationCanceledExceptionOutOfMemoryExceptionOverflowExceptionParamArrayAttributePlatformNotSupportedExceptionRandomRankExceptionResolveEventArgsSerializableAttributeStackOverflowExceptionSTAThreadAttribute8元(STA)。 表示文本
26、,即一系列Unicode字符。 表示一种字符串比较操作,该操作使用特定的 大小写以及基于区域性的比较规则或序号比较 规则。为System命名空间中的预定义异常定义基 类。指示静态字段的值对于每个线程都是唯一的。 给进程或操作分配的时间过期时引发的异常。 表示时区。表示类型声明:类类型、接口类型、数组类型、 值类型、枚举类型、类型参数、泛型类型定义, 以及开放或封闭构造的泛型类型。 作为由类初始值设定项引发的异常周围的包装 引发的异常。无法继承此类。类型加载失败发生时引发的异常。试图访问已卸载的类时引发的异常。当操作系统因I/O错误或指定类型的安全错 误而拒绝访问时所引发的异常。为以下情况下引发
27、的事件提供数据:存在一个 不是由应用程序域处理的异常。 提供统一资源标识符(URI)的对象表示形式 和对URI各部分的轻松访问。 为统一资源标识符(URI)提供自定义构造函 数,并修改Uri类的URI。 当检测到无效的统一资源标识符(URI)时引 发的异常。分析新的URI方案。这是一个抽象类。 将String类型转换为Uri类型,反之亦然。 提供值类型的基类。表示公共语言运行库程序集的版本号。无法继 承此类。表示弱引用,即在引用对象的同时仍然允许对StringStringComparerSystemExceptionThreadStaticAttributeTimeoutExceptionTi
28、meZoneTypeTypeInitializationExceptionTypeLoadExceptionTypeUnloadedExceptionUnauthorizedAccessExceptionUnhandledExceptionEventArgsUriUriBuilderUriFormatExceptionUriParserUriTypeConverterValueTypeVersionWeakReference92.System名空间的接口应该注意接口提供了各种规范, 而许多类库提供的类中都继承了System名空间的接 口,由于它们都具有了很容易理解的名,所以,在其他场合下遇到这
29、些接口,应该能理 解它们的基本作用。System名空间的接口接口 说明向非托管代码公开System.AppDomain类的公共成员。 表示可以添加到AppDomain的实例的程序集绑定信息。 表示异步操作的状态。支持克隆,即用与现有实例相同的值创建类的新实例。 定义通用的比较方法, 由值类型或类实现以创建类型特定的比较方 法。定义由值类型或类实现的通用的比较方法, 以为排序实例创建类型 特定的比较方法。定义特定的方法, 这些方法将实现引用或值类型的值转换为具有等 效值的公共语言运行库类型。定义一种方法,它支持对象值的自定义(用户定义)格式设置。 定义一种释放分配的非托管资源的方法。定义一个通用
30、的方法,由值类型或类实现以创建类型特定的方法, 用于确定实例间的相等性。提供用于检索控制格式化的对象的机制。提供将对象的值格式化为字符串表示形式的功能。定义一种检索服务对象的机制, 服务对象是为其他对象提供自定义 支持的对象。3. System名空间的结构 从下表中可以看到,内置的值类型在栈中的组织就是结构类型。System名空间的结构结构该对象进行垃圾回收。_AppDomainIAppDomainSetupIAsyncResultICloneableIComparableIComparableIConvertibleICustomFormatterIDisposableIEquatableI
31、FormatProviderIFormattableIServiceProvider说明10ArgIterator表示变长参数列表;即采用可变数量的参数的函数的参数。ArraySegment分隔一维数组的一部分。Boolean表示布尔值。Byte士.人C 宀zr竹1=1.时*“表示一个8位无符号整数。Char表示一个Unicode字符。描述按下的控制台键, 包括控制台键表示的字符以及Shift、ConsoleKeyInfoAlt和Ctrl修改键的状态。DateTime表示时间上的一刻,通常以日期和当天的时间表示。Decimal表示十进制数。DoubleT-.7T7 4上来/rz表示一个双精度浮
32、点数字。Enum为枚举提供基类。Guid表示全局唯一标识符(GUID)。Int16表示16位有符号的整数。Int32表示32位有符号的整数。Int64表示64位有符号的整数。IntPtr用于表示指针或句柄的平台特定类型。ModuleHandle表示模块的运行时句柄。表示基础类型为值类型的对象, 值类型与引用类型一样也可Nullable以分配 空引用(在Visual Basic中为Nothing)。RuntimeArgumentHandle引用变长参数列表。RuntimeFieldHandleZj=k m HR立卩*来/*士总4口尽0 PTL使用内部元数据标记表示一个字段。RuntimeMeth
33、odHandle是方法的内部元数据表示形式的RuntimeMethodHandle句柄。RuntimeTypeHandle表示使用内部元数据标记的类型。SByte表示8位有符号整数。SingleT- 7r M 4FFPV1上来/r/表示一个单精度浮点数字。TimeSpan匸、. Z 13-4*、i=n、i=n 7o*表示一个时间间隔。描述既包含指向某位置的托管指针, 也包含该位置可能存储TypedReference的类型的运行时表示形式的对象。UInt16表示16位无符号整数。UInt32表示32位无符号整数。11UInt64表示64位无符号整数。12用于表示指针或句柄的平台特定类型。为不返回
34、值的方法指定返回值类型。4. System名空间的委托System名空间的委托不多,但是都很重要,在SDK(软件开发工具包 )环境中进行事件处理,必须知道系统预定义的委托。System名空间的委托委托 说明表示对指定的对象执行操作的方法。 表示在应用程序域初始化时要调用的回调方法。 表示处理AppDomain的AssemblyLoad事件的 方法。引用在异步操作完成时调用的回调方法。 表示比较同一类型的两个对象的方法。表 示 将 要 处 理System.Console的CancelKeyPress事件的方法。表示将对象从一种类型转换为另一种类型的方法。由DoCallBack使用,用于跨应用程序
35、域的调用。 表示将处理不包含事件数据的事件的方法。 表示将处理事件的方法。 泛型类型参数指定事件所生 成的事件数据的类型。表示定义一组条件并确定指定对象是否符合这些条 件的方法。表 示 处 理AppDomain的TypeResolve、ResourceResolve和AssemblyResolve事件的方 法。表示将处理事件的方法, 该事件由应用程序域不处理 的异常引发。5. System名空间的枚举System名空间中定义的枚举都是程序中常用的几组特定数据,UIntPtrVoidActionAppDomainInitializerAssemblyLoadEventHandlerAsyncCa
36、llbackComparisonConsoleCancelEventHandlerConverterCrossAppDomainDelegateEventHandlerEventHandlerPredicateResolveEventHandlerUnhandledExceptionEventHandler使用这些数据能方便13System名空间的枚举说明 指示清单激活的应用程序的上下文。 指定在初始化一个新域时自定义应用程序域管理器应 采取的操作。指定可以对它们应用属性的应用程序元素。指定相关的System.Convert.ToBase64CharArray和System.Convert.T
37、oBase64String方法是否在其输出 中插入分行符。指定定义控制台前景色和背景色的常数。 指定控制台上的标准键。表示键盘上的Shift、Alt和Ctrl修改键。 指定能够中断当前进程的修改键和控制台键的组合。 指定DateTime对象是表示本地时间、协调通用时间(UTC),还是既不指定为本地时间,也不指定为UTC。 指定一周的某天。指定用于检索系统特殊文件夹的目录路径的枚举常数。 指定在Set或Get操作中存储或检索环境变量的位 置。指定UriParser的选项。一个枚举,它与LoaderOptimizationAttribute类一起 使用为可执行文件指定加载程序优化。指定数学舍入方法
38、应如何处理两个数字间的中间值。 标识程序集所支持的操作系统(或平台) 。指定String.Compare和String.Equals方法的某些 重载要使用的区域、大小写和排序规则。指定适用的System.String.Split方法重载包含还是省 略返回值中的空子字符串。指定对象的类型。指定Uri的各个部分。控制URI信息的转义方式。程序设计和数据组织。枚举ActivationContext.ContextFormAppDomainManagerInitializationOptionsAttributeT argetsBase64FormattingOptionsConsoleColorCo
39、nsoleKeyConsoleModifiersConsoleSpecialKeyDateTimeKindDayOfWeekEnvironment.SpecialFolderEnvironmentVariableT argetGenericUriParserOptionsLoaderOptimizationMidpointRoundingPlatformIDStringComparisonStringSplitOptionsTypeCodeUriComponentsUriFormat14为Uri.CheckHostName方法定义主机名类型。 定义Uri.IsWellFormedUriStri
40、ng的Uri的类型和几 种System.Uri方法。为Uri.GetLeftPart方法定义URI的各部分。类为控制台应用程序提供了标准输入流、 标准输出流和标准错误流的方法和属性。无法继承此类。标准输入和标准输出表示流正常的输入口和发送口,对于控制台应用程序而言分 别指键盘和控制台窗口; 标准错误表示流错误信息的写入点,默认为控制台窗口。控制台应用程序启动时,操作系统会自动将三个I/O流与控制台关联。应用程序可 以从标准输入流读取用户输入;将正常数据写入到标准输出流;以及将错误数据写入到 标准错误输出流。这些流会作为In、Out和Error属性的值提供给应用程序。默认情况 下:In属性的值为
41、System.IO.TextReader对象而Out和Error属性的值为System.IO.TextWriter对象。Console类公共属性名称说明BackgroundColorBufferHeightBufferWidth获取或设置控制台的背景色。获取或设置缓冲区的高度。获取或设置缓冲区的宽度。CapsLock获取一个值,该值指示Caps Lock键盘切换键是打开的还是 关闭的。CursorLeft获取或设置光标在缓冲区中的列位置。CursorSize获取或设置光标在字符单元格中的高度。CursorTopCursorVisible获取或设置光标在缓冲区中的行位置。 获取或设置一个值,用以
42、指示光标是否可见。Error获取标准错误输出流。ForegroundColorIn获取或设置控制台的前景色。获取标准输入流。InputEncodingKeyAvailableLargestWindowHeight获取或设置控制台用于读取输入的编码。获取一个值,该值指示按键操作在输入流中是否可用。 根据当前字体和屏幕分辨率获取控制台窗口可能具有的最大行UriHostNameTypeUriKindUriPartial二、Console类15数。根据当前字体和屏幕分辨率获取控制台窗口可能具有的最大列LargestWindowWidth数。NumberLock获取一个值, 该值指示Num Lock键盘
43、切换键是打开的还是关 闭的。Out获取标准输出流。OutputEncodingTitle获取或设置控制台用于写入输出的编码。获取或设置要显示在控制台标题栏中的标题。 获取或设置一个值, 该值指示是将修改键Control和控制台键TreatControlCAsInputC的组合(Ctrl+C)视为普通输入,还是视为由操作系统处理 的中断。WindowHeight获取或设置控制台窗口区域的高度。获取或设置控制台窗口区域的最左边相对于屏幕缓冲区的位WindowLeft置。WindowTop获取或设置控制台窗口区域的最顶部相对于屏幕缓冲区的位 置。WindowWidth获取或设置控制台窗口的宽度。基础
44、流定向到控制台时Console类成员能够正常工作, 但是, 如果将基础流重定向(如重定向到一个文件),则该类的成员可能会引发异常。 因此, 如果要将标准流重定向,请在应用程序中捕获System.IO.IOException。 如果控制台不存在(在基于Windows的应用程序中就是这样) ,则不显示向控制台 的写入,但是也不会引发异常。1.屏幕缓冲区和控制台窗口控制台有两个关系紧密的功能,也就是屏幕缓冲区和控制台窗口。文本实际上是从 控制台拥有的流进行读取和写入的,但看起来像是在控制台拥有的一个称为屏幕缓冲区 的区域中进行读取和写入的。屏幕缓冲区是控制台的一个属性,以由行和列组成的矩形网格的形式
45、进行组织,其 中每个网格交叉位置(字符单元格)都可包含一个字符。每个字符都有自己的前景色, 而每个字符单元格都有自己的背景色。屏幕缓冲区可通过称为控制台窗口的矩形区域查看。 控制台窗口是控制台的另一个属性; 它不是控制台本身,控制台本身是一个操作系统窗口。控制台窗口也以行和列的形式进行组织,其大小与屏幕缓冲区相同或者更小,该窗16口可进行移动以查看基础屏幕缓冲区的不同区域。如果屏幕缓冲区比控制台窗口大,控 制台会自动显示滚动条,以使控制台窗口可以在屏幕缓冲区上重新定位。光标指示屏幕缓冲区中当前正在读取或写入文本的位置。可以隐藏或显示光标,光 标的高度可以更改。如果光标可见,控制台窗口的位置会自
46、动移动,以便总是能够看到 光标。字符单元格在屏幕缓冲区中的坐标原点为左上角,光标和控制台窗口的位置相对于 该原点进行计算。位置通过从零开始的索引指定;也就是说,将最上面的行指定为行 将最左边的列指定为列0。 行索引和列索引的最大值为Int16.MaxValue。2. Console类功能Con sole类提供用于从控制台读取单个字符或整行的方法;该类还提供若干写入方 法,可将值类型的实例、字符数组以及对象集自动转换为格式化或未格式化的字符串,然后将该字符串(可选择是否尾随一个行终止字符串)写入控制台。Con sole类还提供一些用以执行以下操作的方法和属性:获取或设置屏幕缓冲区、 控制台窗口和
47、光标的大小;更改控制台窗口和光标的位置;移动或清除屏幕缓冲区中的 数据;更改前景色和背景色;更改显示在控制台标题栏中的文本;以及播放提示音。请看下面的示例:using System:namespace Console_1 _class Programstatic void Main(string args)ConsoleWrite( Hello!):Console.WriteLineCHow do you do?b,):Console.Wri怕LirtEWhat is your name:Strinc name = onsole.ReadLine0:ConsoleWriteHave a goo
48、d dayLConsole.Writefnanie):Console.Wri怕Lin*!):Console Read Line():ello* How do pou do? hat is voUPnante *IJLaue a good day, yut运行结果:173.标准流的控制除了In、Out和Error三个属性外,Con sole类还提供十余种公共方法,其中Read、ReadLine、Write、WriteLine方法在前面章节中经常出现,但是由于它们在整个语言中 非常重要,下面我们还要具体介绍。现在我们先看一看其他公共方法:SetError心将Error性设直沏指宦的TextWrit
49、er对彖.Setin中将In属性设宣为指定的TextReader对象,-SetOut护将Out属性役貫为指定的TextWriter对象.以上三种方法把标准的流更改为指定的流,即将Error和Out属性设置为指定的TextWriter对象;将In属性设置为指定的TextReader对象,从而可以使用封装FileStream类的StreamWriter向文件发送错误信息或输出信息;也可以使用封装FileStream类的StreamReader从文件接收信息。0penStandardError已重载.获取标谁错误流.OpenStandardlnput匸已重载较取标准输入爺-OpenStandardO
50、utput已重载获取标谁输出流口以上三种方法可以实现在通过前述SetError、SetOut、SetIn方法更改标准错误流、标准输出流以及标准输入流后,可使用此方法重新获取相应的标准流。请看下面的示例:18sing System:usin g System. C ollection s. G eneric:using System.Text;Liming System.IO:namespace标准流的控制class Programprivate const int tabSize = 4;private const strin g JsageT mxt =功能:把标准的流更改为搭定的流:pub
51、lic static int Main (string Q args) StreamVVriterwriter = null;|f args.Length 2)(C on sole WriteLine(u sag e T ext):return 1:trywriter = newStreainVriterarc|s1 J:二on s ole. S etOut(write r):Con sole .3 Btl n( gwStreamReadei(arg 5 0 肋肋: catch ( DException e) Text/Aiter errorWriter = ConsolerError:err
52、orWriter.WriteLine(e Message);errorWriter.Write Line(usageT ext):return 1: string line:while (line = Gonsole.ReadLineQ != null) string newLine = line.Replaceff).PadRightftebSize, ),Console.WriteLinefnewLine): writer Cl ose():Stream Writer standardoutput = new Str e a m V rite i (C o n so le .OpenSta
53、nd ard O utp ut():standardOutputAutoFlush = true;C on$ole.SetOut( stand ardO utp ut);Console.WriteLinef The input file nameis0.argsO);return 0:194.读写方法下面介绍Console类中的四个常用的读写方法。Read和ReadLine方法1public static int Read ();Read方法返回标准输入流的下一个字符,如果当前没有更多的字符可供读取,则 为负一(-1)。此方法一直进行,直到读取操作终止(例如,用户按下Enter键)后才会返回。
54、按(Ctrl+Z)键或F6键才能获取属性值-。见下例:using System:using System.Collections.Geneiic:using System .Text:namespace R兮包方法class Program static void Main(stiing args)string ml = nTypm a string of text then press Enter11+ nType anywhere in the text to quit:n :string m2 = Character W is hexadecimal 0 x1 ;x4;string m3
55、 = Character is hexadecimal 0 x0:x4.u;char ch;int x;/Console .WriteLine(mI);dox = Console.Read(|;trych = ConveitToChar(xJ:if (I hai JsWhiteSpace(ch)20ConsoleWrite Lin&(m3, x);if (ch = 0 x0a)fonsole.Wi iteLine(nn1 j;elseConsoleWrite Line(m2, ch,刈:catch (OverflowException e)C onsol 9 .WHte Line(0
56、Value read = 1. $ .Message, x);ch = Char.MinValue;C onsol e Write Linefm 1); while (ch l= +):C onscl.ReadQ:2public static stri ng ReadL ine ();Read方法从标准输入流中返回下一行字符,如果没有更多的可用行,则为返回null。此方法直到检测到一个回车符或换行符时才会返回,并且返回的字符不包括回车符 和换行符。这两种方法如果在读取时出现一个I/O错误,则会抛出lOException异常;如果被读入的字符串大于缓冲区的容量,会引发(内存不足,无法为返回的字符
57、串分配缓冲区)OutOfMemoryException异常,这时会丢失部分数据。Write方法概述Con sole. Write()方法将指定的信息写入标准输出流,该方法可自动将值类型的各个 实例、字符数组转换为格式化字符串或无格式化字符串,然后将该字符串写入控制台, 该字符串后面还可以带行终止字符串。此处的格式化字符串满足符合格式化规则,即用N,W:F形式表示。其中:N是一个基于0的整数,用来指示出要格式化的参数;W是可选的,并定义了格式化的宽度;F是一个格式化代码,有效的格式化代码包括:21字符说明示例C货币货币triiFonnatC0:C3,l2)$2.000D十进制十进制stitFon
58、natno D31,2)002E科学科学计数法计数法1.20E+0011 20E+001G常规常规striiig.Forma(C0:GE 2)2N用分号隔开的数字用分号隔开的数字stiiiiu.FoimtitaO Nf, 250000)250,000.00X十十六进制六进制string.FormatCOOOOr, 13)cstrli|.FormaiC0 000 OOOr.12,2)012.200如果在写入时出现一个I/O错误,则会抛出lOException异常。它可以通过重载以支持所有类型的值、字符串和其他对象。重载方法Con sole.Write方法重载列表Con sole.Write方法重
59、载列表说明将指定的布尔值的文本表示形式写入标准输出 流。将指定的Unicode字符值写入标准输出流。 由.NET CompactFramework支持。将指定的Unicode字符数组写入标准输出流。由.NET Compact Framework支持。将指定的Decimal值的文本表示形式写入标准 输出流。将指定的双精度浮点值的文本表示形式写入标准 输出流。将指定的32位有符号整数值的文本表示写入 标准输出流。由.NET Compact Framework支持。将指定的64位有符号整数值的文本表示写入 标准输出流。将指定对象的文本表示形式写入标准输出流。由.NET Compact Framewo
60、rk支持。序号名称1Con sole.Write (Boolean)2Co nsole.Write (Char)3Con sole.Write (Char)4Con sole.Write (Decimal)5Con sole.Write (Double)6Con sole.Write (In t32)7Con sole.Write (In t64)8Co nsole.Write (Object)22将指定的单精度浮点值的文本表示形式写入标准 输出流。将指定的字符串值写入标准输出流。由.NET Compact Framework支持。将指定的32位无符号整数值的文本表示写入 标准输出流。将指定的64位无
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 左美马嗪行业深度研究分析报告(2024-2030版)
- 2025年中国纳米机器人行业市场调查研究及投资前景预测报告
- 2025年中国乳果糖行业市场运行现状及未来发展预测报告
- 学校早晚餐管理制度
- 学校运营部管理制度
- 学生外供餐管理制度
- 学费收退费管理制度
- 安全培训会管理制度
- 安委会部门管理制度
- 安置点后续管理制度
- 2025年企业安全生产知识竞赛全套复习题库及答案(完整版)
- 新大学语文试题及答案
- 长沙市望城区2024年八年级《数学》下学期期末试题与参考答案
- 人际关系与有效沟通培训课件
- 动漫人物教学课件
- 深基坑土方开挖专项施工方案专家论证
- 2025年部编版语文六年级下册期末复习计划及全册单元复习课教案
- 电大本科《人文英语4》期末题库及答案
- 贴标(不干胶标)检验作业指导书(美国UEC验厂质量管理体系)
- 2025年金融科技发展趋势洞见报告-北京金融信息化研究所
- 个体尺度最大化机会均等的“随机就近”入学优化及与概率序列法的比较研究
评论
0/150
提交评论