




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、類的分析與實現(xiàn)目錄軟件三班 劉一鋒第一部分 .NET類庫1一、 類庫結構和System名空間11.System名空間的類32.System名空間的接口93. System名空間的結構94. System名空間的委托115. System名空間的枚舉11二、 Console類131.屏幕緩沖區(qū)和控制臺窗口142. Console 類功能153.標準流的控制164.讀寫方法18三、 Convert類251. Convert 類的類型轉換252. Convert 類的方法介紹27四、 Math類和Random類291. System. Math類302. System. Random類31五、 Ti
2、meSpan類331. TimeSpan 對象的單位和格式332. TimeSpan 公共字段和屬性333. 構造函數和創(chuàng)建TimeSpan對象344. TimeSpan公共方法和運算符36六、 DateTime類391.構造函數和DateTime對象的創(chuàng)建392. DateTime的公共字段和屬性403. DateTime的方法和運算符41七、 System.Collections名空間概念421.容量和計數422.下限43八、 System.Collections中的接口441.IEnumerable 接口452.IEnumerator 接口453.IEnumerator.Reset 方法
3、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二、 文件的基本操作611.文件的創(chuàng)建622.讀文件623.寫文件644.讀寫二進制文件665.讀取文本文件686.寫入文本文件6
4、9第一部分 .NET 類庫應用用C#開發(fā)軟件的一大優(yōu)勢就是能獲得.NET框架的各種支持,而.NET類庫就是其中重要的軟件開發(fā)資源,它繼承了大部分Windows API 函數的功能,還提供了更高級別的操作。離開了這些類庫,就很難編寫實用的C#應用程序,即使是簡單的控制臺程序也要依賴于.NET類庫。關于類庫的概念一直就存在,以前的VC有MFC類庫、Delphi有類庫VCL、Java有Swing、AWT等類庫。這些類庫封裝了系統(tǒng)底層的功能并提供更好的操作方式。.NET中的類庫封裝了對Windows、網絡、文件、多媒體的處理功能,是所有.NET語言都必須使用的核心類庫。.NET框架類庫的確如其名稱所暗
5、示:一個關于類和類型的程序庫,可讓開發(fā)人員的日子好過一些。雖然這些類本身以C#編寫而成,但它們可被任何基于CLR的語言使用。以C#、VB、C+或.NET框架所支持的任何其他語言編寫出來的代碼,都可以制造出這些類的實例,并調用它們的方法。一、 類庫結構和System名空間.NET框架類庫的內容被組織成一個樹狀命名空間(namespace tree)。每一個命名空間可以包含許多類型(例如類和接口)及其他命名空間。.NET框架類庫被組織成一個命名空間層次結構,System是這個層次結構的根。上圖展示了.NET框架類庫樹狀命名空間很小的一部分。System:“樹”的根,此命名空間包含 .NET框架類庫
6、中的其他所有命名空間。System.Web:這個命名空間包含的類型能夠用來創(chuàng)建Web應用程序,與其他許多命名空間一樣,它也擁有次級命名空間。例如,開發(fā)人員可以使用System.Web.UI中的類型來構建ASP.NET瀏覽器應用程序,而System.Web.Services中的類型則可用來構建ASP.NET Web Services應用程序。System.Data:這個命名空間內的類型造就了ADO.NET。例如Connection類用于建立對數據庫管理系統(tǒng)(database management system,DBMS)的連接,DataSet類的實例則可用于緩存(cache)和檢視對DBMS執(zhí)行
7、的查詢的結果。System.Windows.Forms:這個命名空間內的類型構成了Windows Forms,它們用于構建Windows GUIs(圖形用戶界面)。當以任何基于CLR的編程語言編寫.NET框架應用程序時,都可以使用這一套通用類型來創(chuàng)建Windows圖形界面,而不必依賴于某種特定的語言機制。System.EnterpriseServices:這個命名空間內的類型提供了某些企業(yè)應用所要求的服務。System.XML:這個命名空間內的類型支持生成和處理以XML定義的數據。此外還有更多命名空間定義,支持文件訪問(file access)、對象狀態(tài)序列化(object state ser
8、ializing)、遠程對象訪問(remote access to object),以及其他更多功能。詳細解釋如下表:.NET Framework 類庫提供了各種類、接口、委托、結構和枚舉, System名空間除了包含系統(tǒng)預定義的類和基類,還包括常用的值和引用數據類型、事件處理程序、接口、屬性和異常處理,以及提供服務支持數據的各種其他類。 System名空間還包含許多二級名空間。1.System名空間的類除基礎數據類型外, System名空間還包含近100個類,范圍從處理異常的類到處理核心運行庫概念的類,如應用程序和垃圾回收器。 System名空間還包含許多二級名空間。Sy
9、stem名空間的類類說明AccessViolationException在試圖讀寫受保護內存時引發(fā)的異常。ActivationContext標識當前應用程序的激活上下文。無法繼承此類。 Activator包含特定的方法,用以在本地或從遠程創(chuàng)建對象類型,或獲取對現(xiàn)有遠程對象的引用。無法繼承此類。AppDomain表示應用程序域,它是一個應用程序在其中執(zhí)行的獨立環(huán)境。無法繼承此類。AppDomainManager提供非托管宿主的等效托管宿主。AppDomainSetup表示可以添加到 AppDomain 的實例的程序集綁定信息。AppDomainUnloadedException在嘗試訪問已卸載的
10、應用程序域時引發(fā)的異常。 ApplicationException發(fā)生非致命應用程序錯誤時引發(fā)的異常。ApplicationId包含用于唯一地標識某個應用程序的信息。無法繼承此類。ApplicationIdentity提供唯一標識清單激活的應用程序的能力。無法繼承此類。 ArgumentException在向方法提供的其中一個參數無效時引發(fā)的異常。ArgumentNullException當將空引用(在 Visual Basic 中為 Nothing)傳遞給不接受它作為有效參數的方法時引發(fā)的異常。 ArgumentOutOfRangeException當參數值超出調用的方法所定義的允許取值范圍
11、時引發(fā)的異常。ArithmeticException因算術運算、類型轉換或轉換操作中的錯誤而引發(fā)的異常。Array提供創(chuàng)建、操作、搜索和排序數組的方法,因而在公共語言運行庫中用作所有數組的基類。ArrayTypeMismatchException當試圖在數組中存儲類型不正確的元素時引發(fā)的異常。 AssemblyLoadEventArgs為 AssemblyLoad 事件提供數據。Attribute表示自定義屬性的基類。AttributeUsageAttribute指定另一屬性類的用法。無法繼承此類。BadImageFormatException當 DLL 或可執(zhí)行程序的文件圖像無效時引發(fā)的異常
12、。 BitConverter將基礎數據類型與字節(jié)數組相互轉換。Buffer操作基元類型的數組。CannotUnloadAppDomainException卸載應用程序域的嘗試失敗時引發(fā)的異常。CharEnumerator支持循環(huán)訪問 String 對象并讀取它的各個字符。無法繼承此類。CLSCompliantAttribute指示程序元素是否符合公共語言規(guī)范 (CLS)。無法繼承此類。Console表示控制臺應用程序的標準輸入流、輸出流和錯誤流。無法繼承此類。ConsoleCancelEventArgs為 Console.CancelKeyPress 事件提供數據。無法繼承此類。Context
13、BoundObject定義所有上下文綁定類的基類。ContextMarshalException在嘗試將對象封送過上下文邊界失敗時引發(fā)的異常。ContextStaticAttribute指示靜態(tài)字段的值是特定上下文的唯一值。Convert將一個基本數據類型轉換為另一個基本數據類型。DataMisalignedException在從不是數據大小倍數的地址讀取數據單元或將數據單元寫入此類地址時引發(fā)的異常。無法繼承此類。DBNull表示空值。Delegate表示委托,委托是一種數據結構,它引用靜態(tài)方法或引用類實例及該類的實例方法。DivideByZeroException試圖用零除整數值或十進制數值
14、時引發(fā)的異常。DllNotFoundException當未找到在 DLL 導入中指定的 DLL 時所引發(fā)的異常。DuplicateWaitObjectException當對象在同步對象數組中不止一次出現(xiàn)時引發(fā)的異常。EntryPointNotFoundException因不存在項方法而導致加載類的嘗試失敗時引發(fā)的異常。Environment提供有關當前環(huán)境和平臺的信息以及操作它們的方法。無法繼承此類。EventArgsEventArgs 是包含事件數據的類的基類。 Exception表示在應用程序執(zhí)行期間發(fā)生的錯誤。ExecutionEngineException當公共語言運行庫的執(zhí)行引擎中發(fā)
15、生內部錯誤時引發(fā)的異常。無法繼承此類。 FieldAccessException當試圖非法訪問類中的私有字段或受保護字段時引發(fā)的異常。FileStyleUriParser基于 File 方案的可自定義分析器。FlagsAttribute指示可以將枚舉作為位域(即一組標志)處理。FormatException當參數格式不符合調用的方法的參數規(guī)范時引發(fā)的異常。FtpStyleUriParser基于文件傳輸協(xié)議 (FTP) 方案的可自定義分析器。GC控制系統(tǒng)垃圾回收器(一種自動回收未使用內存的服務)。GenericUriParser用于分層 URI 的可自定義分析器。GopherStyleUriPa
16、rser基于 Gopher 方案的可自定義分析器。HttpStyleUriParser基于 HTTP 方案的可自定義分析器。IndexOutOfRangeException試圖訪問索引超出數組界限的數組元素時引發(fā)的異常。無法繼承此類。InsufficientMemoryException當檢測到沒有足夠的可用內存時引發(fā)的異常。無法繼承此類。InvalidCastException因無效類型轉換或顯式轉換引發(fā)的異常。InvalidOperationException當方法調用對于對象的當前狀態(tài)無效時引發(fā)的異常。InvalidProgramException當程序包含無效 Microsoft 中間
17、語言 (MSIL) 或元數據時將引發(fā)的異常。這通常表示生成程序的編譯器中有 bug。LdapStyleUriParser基于 輕型目錄訪問協(xié)議 (LDAP) 方案的可自定義分析器。LoaderOptimizationAttribute用于為可執(zhí)行應用程序的主方法設置默認的加載程序優(yōu)化策略。LocalDataStoreSlot封裝內存槽以存儲本地數據。無法繼承此類。MarshalByRefObject允許在支持遠程處理的應用程序中跨應用程序域邊界訪問對象。Math為三角函數、對數函數和其他通用數學函數提供常數和靜態(tài)方法。MemberAccessException訪問類成員的嘗試失敗時引發(fā)的異常。
18、MethodAccessException非法嘗試訪問類中的私有方法或受保護的方法時引發(fā)的異常。MissingFieldException試圖動態(tài)訪問不存在的字段時引發(fā)的異常。MissingMemberException試圖動態(tài)訪問不存在的類成員時引發(fā)的異常。MissingMethodException試圖動態(tài)訪問不存在的方法時引發(fā)的異常。MTAThreadAttribute指示應用程序的 COM 線程模型為多線程單元 (MTA)。 MulticastDelegate表示多路廣播委托;即,其調用列表中可以擁有多個元素的委托。MulticastNotSupportedException嘗試組合兩
19、個基于 Delegate 類型而非 MulticastDelegate 類型的委托時引發(fā)的異常。無法繼承此類。 NetPipeStyleUriParser基于“Indigo”系統(tǒng)的 NetPipe 方案的分析器。NetTcpStyleUriParser基于“Indigo”系統(tǒng)的 NetTcp 方案的分析器。NewsStyleUriParser基于使用網絡新聞傳輸協(xié)議 (NNTP) 的新聞方案的可自定義分析器。NonSerializedAttribute指示可序列化類的某個字段不應被序列化。無法繼承此類。NotFiniteNumberException當浮點值為正無窮大、負無窮大或非數字 (Na
20、N) 時引發(fā)的異常。NotImplementedException在無法實現(xiàn)請求的方法或操作時引發(fā)的異常。NotSupportedException當調用的方法不受支持,或試圖讀取、查找或寫入不支持調用功能的流時引發(fā)的異常。Nullable支持可為其分配 空引用(在 Visual Basic 中為 Nothing) 的值類型,如引用類型。無法繼承此類。NullReferenceException嘗試取消引用空對象引用時引發(fā)的異常。Object支持 .NET Framework 類層次結構中的所有類,并為派生類提供低級別服務。這是 .NET Framework 中所有類的最終基類;它是類型層次結
21、構的根。ObjectDisposedException對已釋放的對象執(zhí)行操作時所引發(fā)的異常。ObsoleteAttribute標記不再使用的程序元素。無法繼承此類。OperatingSystem表示有關操作系統(tǒng)的信息,如版本和平臺標識符。無法繼承此類。OperationCanceledException取消線程正在執(zhí)行的操作時在線程中引發(fā)的異常。OutOfMemoryException沒有足夠的內存繼續(xù)執(zhí)行程序時引發(fā)的異常。OverflowException在選中的上下文中所進行的算術運算、類型轉換或轉換操作導致溢出時引發(fā)的異常。ParamArrayAttribute指示方法在調用中將允許參數
22、的數目可變。無法繼承此類。PlatformNotSupportedException當功能未在特定平臺上運行時所引發(fā)的異常。Random表示偽隨機數生成器,一種能夠產生滿足某些隨機性統(tǒng)計要求的數字序列的設備。RankException將維數錯誤的數組傳遞給方法時引發(fā)的異常。ResolveEventArgs為 TypeResolve、ResourceResolve 和 AssemblyResolve 事件提供數據。SerializableAttribute指示一個類可以序列化。無法繼承此類。StackOverflowException因包含的嵌套方法調用過多而導致執(zhí)行堆棧溢出時引發(fā)的異常。無法繼
23、承此類。STAThreadAttribute指示應用程序的 COM 線程模型是單線程單元 (STA)。 String表示文本,即一系列 Unicode 字符。StringComparer表示一種字符串比較操作,該操作使用特定的大小寫以及基于區(qū)域性的比較規(guī)則或序號比較規(guī)則。SystemException為 System 命名空間中的預定義異常定義基類。ThreadStaticAttribute指示靜態(tài)字段的值對于每個線程都是唯一的。TimeoutException給進程或操作分配的時間過期時引發(fā)的異常。TimeZone表示時區(qū)。Type表示類型聲明:類類型、接口類型、數組類型、值類型、枚舉類型、
24、類型參數、泛型類型定義,以及開放或封閉構造的泛型類型。TypeInitializationException作為由類初始值設定項引發(fā)的異常周圍的包裝引發(fā)的異常。無法繼承此類。TypeLoadException類型加載失敗發(fā)生時引發(fā)的異常。TypeUnloadedException試圖訪問已卸載的類時引發(fā)的異常。UnauthorizedAccessException當操作系統(tǒng)因 I/O 錯誤或指定類型的安全錯誤而拒絕訪問時所引發(fā)的異常。UnhandledExceptionEventArgs為以下情況下引發(fā)的事件提供數據:存在一個不是由應用程序域處理的異常。Uri提供統(tǒng)一資源標識符 (URI) 的
25、對象表示形式和對 URI 各部分的輕松訪問。UriBuilder為統(tǒng)一資源標識符 (URI) 提供自定義構造函數,并修改 Uri 類的 URI。UriFormatException當檢測到無效的統(tǒng)一資源標識符 (URI) 時引發(fā)的異常。UriParser分析新的 URI 方案。這是一個抽象類。UriTypeConverter將 String 類型轉換為 Uri 類型,反之亦然。ValueType提供值類型的基類。Version表示公共語言運行庫程序集的版本號。無法繼承此類。WeakReference表示弱引用,即在引用對象的同時仍然允許對該對象進行垃圾回收。2.System名空間的接口應該注意
26、接口提供了各種規(guī)范,而許多類庫提供的類中都繼承了System名空間的接口,由于它們都具有了很容易理解的名,所以,在其他場合下遇到這些接口,應該能理解它們的基本作用。 System名空間的接口接口說明_AppDomain向非托管代碼公開 System.AppDomain 類的公共成員。IAppDomainSetup表示可以添加到 AppDomain 的實例的程序集綁定信息。IAsyncResult表示異步操作的狀態(tài)。 ICloneable支持克隆,即用與現(xiàn)有實例相同的值創(chuàng)建類的新實例。IComparable定義通用的比較方法,由值類型或類實現(xiàn)以創(chuàng)建類型特定的比較方法。IComparable定義由
27、值類型或類實現(xiàn)的通用的比較方法,以為排序實例創(chuàng)建類型特定的比較方法。IConvertible定義特定的方法,這些方法將實現(xiàn)引用或值類型的值轉換為具有等效值的公共語言運行庫類型。ICustomFormatter定義一種方法,它支持對象值的自定義(用戶定義)格式設置。IDisposable定義一種釋放分配的非托管資源的方法。IEquatable定義一個通用的方法,由值類型或類實現(xiàn)以創(chuàng)建類型特定的方法,用于確定實例間的相等性。IFormatProvider提供用于檢索控制格式化的對象的機制。IFormattable提供將對象的值格式化為字符串表示形式的功能。IServiceProvider定義一種檢
28、索服務對象的機制,服務對象是為其他對象提供自定義支持的對象。3. System名空間的結構從下表中可以看到,內置的值類型在棧中的組織就是結構類型。System名空間的結構結構說明ArgIterator表示變長參數列表;即采用可變數量的參數的函數的參數。ArraySegment分隔一維數組的一部分。Boolean表示布爾值。Byte表示一個 8 位無符號整數。Char表示一個 Unicode 字符。ConsoleKeyInfo描述按下的控制臺鍵,包括控制臺鍵表示的字符以及 Shift、Alt 和 Ctrl 修改鍵的狀態(tài)。DateTime表示時間上的一刻,通常以日期和當天的時間表示。Decimal
29、表示十進制數。Double表示一個雙精度浮點數字。Enum為枚舉提供基類。Guid表示全局唯一標識符 (GUID)。Int16表示 16 位有符號的整數。Int32表示 32 位有符號的整數。Int64表示 64 位有符號的整數。IntPtr用于表示指針或句柄的平臺特定類型。ModuleHandle表示模塊的運行時句柄。Nullable表示基礎類型為值類型的對象,值類型與引用類型一樣也可以分配 空引用(在 Visual Basic 中為 Nothing)。RuntimeArgumentHandle引用變長參數列表。RuntimeFieldHandle使用內部元數據標記表示一個字段。Runtim
30、eMethodHandleRuntimeMethodHandle 是方法的內部元數據表示形式的句柄。RuntimeTypeHandle表示使用內部元數據標記的類型。SByte表示 8 位有符號整數。Single表示一個單精度浮點數字。TimeSpan表示一個時間間隔。TypedReference描述既包含指向某位置的托管指針,也包含該位置可能存儲的類型的運行時表示形式的對象。UInt16表示 16 位無符號整數。UInt32表示 32 位無符號整數。UInt64表示 64 位無符號整數。UIntPtr用于表示指針或句柄的平臺特定類型。Void為不返回值的方法指定返回值類型。4. System名
31、空間的委托 System名空間的委托不多,但是都很重要,在SDK(軟件開發(fā)工具包 )環(huán)境中進行事件處理,必須知道系統(tǒng)預定義的委托。System名空間的委托委托說明Action表示對指定的對象執(zhí)行操作的方法。AppDomainInitializer表示在應用程序域初始化時要調用的回調方法。AssemblyLoadEventHandler表示處理 AppDomain 的 AssemblyLoad 事件的方法。AsyncCallback引用在異步操作完成時調用的回調方法。Comparison表示比較同一類型的兩個對象的方法。ConsoleCancelEventHandler表示將要處理 System
32、.Console 的 CancelKeyPress 事件的方法。Converter表示將對象從一種類型轉換為另一種類型的方法。CrossAppDomainDelegate由 DoCallBack 使用,用于跨應用程序域的調用。EventHandler表示將處理不包含事件數據的事件的方法。EventHandler表示將處理事件的方法。泛型類型參數指定事件所生成的事件數據的類型。 Predicate表示定義一組條件并確定指定對象是否符合這些條件的方法。ResolveEventHandler表示處理 AppDomain 的 TypeResolve、ResourceResolve 和 Assembly
33、Resolve 事件的方法。UnhandledExceptionEventHandler表示將處理事件的方法,該事件由應用程序域不處理的異常引發(fā)。5. System名空間的枚舉System名空間中定義的枚舉都是程序中常用的幾組特定數據,使用這些數據能方便程序設計和數據組織。System名空間的枚舉枚舉說明ActivationContext.ContextForm指示清單激活的應用程序的上下文。AppDomainManagerInitializationOptions指定在初始化一個新域時自定義應用程序域管理器應采取的操作。AttributeTargets指定可以對它們應用屬性的應用程序元素。B
34、ase64FormattingOptions指定相關的 System.Convert.ToBase64CharArray 和 System.Convert.ToBase64String 方法是否在其輸出中插入分行符。 ConsoleColor指定定義控制臺前景色和背景色的常數。ConsoleKey指定控制臺上的標準鍵。ConsoleModifiers表示鍵盤上的 Shift、Alt 和 Ctrl 修改鍵。ConsoleSpecialKey指定能夠中斷當前進程的修改鍵和控制臺鍵的組合。DateTimeKind指定 DateTime 對象是表示本地時間、協(xié)調通用時間 (UTC),還是既不指定為本地
35、時間,也不指定為 UTC。DayOfWeek指定一周的某天。Environment.SpecialFolder指定用于檢索系統(tǒng)特殊文件夾的目錄路徑的枚舉常數。EnvironmentVariableTarget指定在 Set 或 Get 操作中存儲或檢索環(huán)境變量的位置。GenericUriParserOptions指定 UriParser 的選項。LoaderOptimization一個枚舉,它與 LoaderOptimizationAttribute 類一起使用為可執(zhí)行文件指定加載程序優(yōu)化。MidpointRounding指定數學舍入方法應如何處理兩個數字間的中間值。PlatformID標識程
36、序集所支持的操作系統(tǒng)(或平臺)。StringComparison指定 String.Compare 和 String.Equals 方法的某些重載要使用的區(qū)域、大小寫和排序規(guī)則。StringSplitOptions指定適用的 System.String.Split 方法重載包含還是省略返回值中的空子字符串。TypeCode指定對象的類型。UriComponents指定 Uri 的各個部分。UriFormat控制 URI 信息的轉義方式。UriHostNameType為 Uri.CheckHostName 方法定義主機名類型。UriKind定義 Uri.IsWellFormedUriString
37、 的 Uri 的類型和幾種 System.Uri 方法。UriPartial為 Uri.GetLeftPart 方法定義 URI 的各部分。二、 Console類 System. Console 類為控制臺應用程序提供了標準輸入流、標準輸出流和標準錯誤流的方法和屬性。無法繼承此類。v 標準輸入和標準輸出表示流正常的輸入口和發(fā)送口,對于控制臺應用程序而言分別指鍵盤和控制臺窗口;v 標準錯誤表示流錯誤信息的寫入點,默認為控制臺窗口??刂婆_應用程序啟動時,操作系統(tǒng)會自動將三個 I/O 流與控制臺關聯(lián)。應用程序可以從標準輸入流讀取用戶輸入;將正常數據寫入到標準輸出流;以及將錯誤數據寫入到標準錯誤輸出流
38、。這些流會作為 In、Out 和 Error 屬性的值提供給應用程序。默認情況下:v In 屬性的值為 System.IO.TextReader 對象v 而Out和Error屬性的值為System.IO.TextWriter 對象。Console類公共屬性名稱說明BackgroundColor 獲取或設置控制臺的背景色。 BufferHeight 獲取或設置緩沖區(qū)的高度。 BufferWidth 獲取或設置緩沖區(qū)的寬度。 CapsLock 獲取一個值,該值指示 Caps Lock 鍵盤切換鍵是打開的還是關閉的。 CursorLeft 獲取或設置光標在緩沖區(qū)中的列位置。 CursorSize 獲
39、取或設置光標在字符單元格中的高度。 CursorTop 獲取或設置光標在緩沖區(qū)中的行位置。 CursorVisible 獲取或設置一個值,用以指示光標是否可見。 Error 獲取標準錯誤輸出流。 ForegroundColor 獲取或設置控制臺的前景色。 In 獲取標準輸入流。 InputEncoding 獲取或設置控制臺用于讀取輸入的編碼。 KeyAvailable 獲取一個值,該值指示按鍵操作在輸入流中是否可用。 LargestWindowHeight 根據當前字體和屏幕分辨率獲取控制臺窗口可能具有的最大行數。 LargestWindowWidth 根據當前字體和屏幕分辨率獲取控制臺窗口可
40、能具有的最大列數。 NumberLock 獲取一個值,該值指示 Num Lock 鍵盤切換鍵是打開的還是關閉的。 Out 獲取標準輸出流。 OutputEncoding 獲取或設置控制臺用于寫入輸出的編碼。 Title 獲取或設置要顯示在控制臺標題欄中的標題。 TreatControlCAsInput 獲取或設置一個值,該值指示是將修改鍵 Control 和控制臺鍵 C 的組合 (Ctrl+C) 視為普通輸入,還是視為由操作系統(tǒng)處理的中斷。 WindowHeight 獲取或設置控制臺窗口區(qū)域的高度。 WindowLeft 獲取或設置控制臺窗口區(qū)域的最左邊相對于屏幕緩沖區(qū)的位置。 WindowT
41、op 獲取或設置控制臺窗口區(qū)域的最頂部相對于屏幕緩沖區(qū)的位置。 WindowWidth 獲取或設置控制臺窗口的寬度。 基礎流定向到控制臺時 Console 類成員能夠正常工作,但是,如果將基礎流重定向(如重定向到一個文件),則該類的成員可能會引發(fā)異常。因此,如果要將標準流重定向,請在應用程序中捕獲 System.IO.IOException。如果控制臺不存在(在基于Windows的應用程序中就是這樣),則不顯示向控制臺的寫入,但是也不會引發(fā)異常。1.屏幕緩沖區(qū)和控制臺窗口控制臺有兩個關系緊密的功能,也就是屏幕緩沖區(qū)和控制臺窗口。文本實際上是從控制臺擁有的流進行讀取和寫入的,但看起來像是在控制臺
42、擁有的一個稱為屏幕緩沖區(qū)的區(qū)域中進行讀取和寫入的。屏幕緩沖區(qū)是控制臺的一個屬性,以由行和列組成的矩形網格的形式進行組織,其中每個網格交叉位置(字符單元格)都可包含一個字符。每個字符都有自己的前景色,而每個字符單元格都有自己的背景色。屏幕緩沖區(qū)可通過稱為控制臺窗口的矩形區(qū)域查看??刂婆_窗口是控制臺的另一個屬性;它不是控制臺本身,控制臺本身是一個操作系統(tǒng)窗口。控制臺窗口也以行和列的形式進行組織,其大小與屏幕緩沖區(qū)相同或者更小,該窗口可進行移動以查看基礎屏幕緩沖區(qū)的不同區(qū)域。如果屏幕緩沖區(qū)比控制臺窗口大,控制臺會自動顯示滾動條,以使控制臺窗口可以在屏幕緩沖區(qū)上重新定位。光標指示屏幕緩沖區(qū)中當前正在讀
43、取或寫入文本的位置。可以隱藏或顯示光標,光標的高度可以更改。如果光標可見,控制臺窗口的位置會自動移動,以便總是能夠看到光標。字符單元格在屏幕緩沖區(qū)中的坐標原點為左上角,光標和控制臺窗口的位置相對于該原點進行計算。位置通過從零開始的索引指定;也就是說,將最上面的行指定為行 0,將最左邊的列指定為列 0。行索引和列索引的最大值為 Int16.MaxValue。2. Console 類功能Console 類提供用于從控制臺讀取單個字符或整行的方法;該類還提供若干寫入方法,可將值類型的實例、字符數組以及對象集自動轉換為格式化或未格式化的字符串,然后將該字符串(可選擇是否尾隨一個行終止字符串)寫入控制臺
44、。Console 類還提供一些用以執(zhí)行以下操作的方法和屬性:獲取或設置屏幕緩沖區(qū)、控制臺窗口和光標的大小;更改控制臺窗口和光標的位置;移動或清除屏幕緩沖區(qū)中的數據;更改前景色和背景色;更改顯示在控制臺標題欄中的文本;以及播放提示音。請看下面的示例:運行結果:3.標準流的控制除了In、Out 和 Error三個屬性外,Console 類還提供十余種公共方法,其中Read、ReadLine、Write、WriteLine方法在前面章節(jié)中經常出現(xiàn),但是由于它們在整個語言中非常重要,下面我們還要具體介紹?,F(xiàn)在我們先看一看其他公共方法:以上三種方法把標準的流更改為指定的流,即將Error和Out屬性設置
45、為指定的 TextWriter 對象;將 In 屬性設置為指定的 TextReader 對象,從而可以使用封裝FileStream類的StreamWriter向文件發(fā)送錯誤信息或輸出信息;也可以使用封裝FileStream類的StreamReader從文件接收信息。以上三種方法可以實現(xiàn)在通過前述SetError、SetOut、SetIn方法更改標準錯誤流、標準輸出流以及標準輸入流后,可使用此方法重新獲取相應的標準流。 請看下面的示例:4.讀寫方法下面介紹Console 類中的四個常用的讀寫方法。Read和 ReadLine方法public static int Read () ;Read 方法
46、返回標準輸入流的下一個字符,如果當前沒有更多的字符可供讀取,則為負一 (-1)。 此方法一直進行,直到讀取操作終止(例如,用戶按下Enter鍵)后才會返回。按 (Ctrl+Z)鍵或F6鍵才能獲取屬性值 1。見下例:public static string ReadLine () ;Read 方法從標準輸入流中返回下一行字符,如果沒有更多的可用行,則為返回null。 此方法直到檢測到一個回車符或換行符時才會返回,并且返回的字符不包括回車符和換行符。這兩種方法如果在讀取時出現(xiàn)一個I/O錯誤,則會拋出IOException異常;如果被讀入的字符串大于緩沖區(qū)的容量,會引發(fā)(內存不足,無法為返回的字符串
47、分配緩沖區(qū))OutOfMemoryException異常,這時會丟失部分數據。Write方法概述Console. Write()方法將指定的信息寫入標準輸出流,該方法可自動將值類型的各個實例、字符數組轉換為格式化字符串或無格式化字符串,然后將該字符串寫入控制臺,該字符串后面還可以帶行終止字符串。此處的格式化字符串滿足符合格式化規(guī)則,即用N,W:F形式表示。其中:N是一個基于0的整數,用來指示出要格式化的參數;W是可選的,并定義了格式化的寬度;F是一個格式化代碼,有效的格式化代碼包括:如果在寫入時出現(xiàn)一個I/O錯誤,則會拋出IOException異常。它可以通過重載以支持所有類型的值、字符串和其
48、他對象。重載方法Console.Write 方法重載列表Console.Write 方法重載列表序號名稱說明1Console.Write (Boolean) 將指定的布爾值的文本表示形式寫入標準輸出流。 2Console.Write (Char) 將指定的 Unicode 字符值寫入標準輸出流。 由 .NET Compact Framework 支持。 3Console.Write (Char) 將指定的 Unicode 字符數組寫入標準輸出流。 由 .NET Compact Framework 支持。 4Console.Write (Decimal) 將指定的 Decimal 值的文本表示形
49、式寫入標準輸出流。 5Console.Write (Double) 將指定的雙精度浮點值的文本表示形式寫入標準輸出流。 6Console.Write (Int32) 將指定的 32 位有符號整數值的文本表示寫入標準輸出流。 由 .NET Compact Framework 支持。 7Console.Write (Int64) 將指定的 64 位有符號整數值的文本表示寫入標準輸出流。 8Console.Write (Object) 將指定對象的文本表示形式寫入標準輸出流。 由 .NET Compact Framework 支持。 9Console.Write (Single) 將指定的單精度浮點
50、值的文本表示形式寫入標準輸出流。 10Console.Write (String) 將指定的字符串值寫入標準輸出流。 由 .NET Compact Framework 支持。 11Console.Write (UInt32) 將指定的 32 位無符號整數值的文本表示寫入標準輸出流。 12Console.Write (UInt64) 將指定的 64 位無符號整數值的文本表示寫入標準輸出流。 13Console.Write (String, Object) 使用指定的格式信息將指定對象的文本表示形式寫入標準輸出流。 由 .NET Compact Framework 支持。 14Console.Wr
51、ite(String, bject) 使用指定的格式信息將指定的對象數組的文本表示形式寫入標準輸出流。 由 .NET Compact Framework 支持。 15Console.Write (Char, Int32, Int32) 將指定的 Unicode 字符子數組寫入標準輸出流。 由 .NET Compact Framework 支持。 16Console.Write (String, Object, Object) 使用指定的格式信息將指定對象的文本表示形式寫入標準輸出流。 由 .NET Compact Framework 支持。 17Console.Write (String, O
52、bject, Object, Object) 使用指定的格式信息將指定對象的文本表示形式寫入標準輸出流。 由 .NET Compact Framework 支持。 18Console.Write (String, Object, Object, Object, Object) 使用指定的格式信息將指定的對象和可變長度參數列表的文本表示形式寫入標準輸出流。 WriteLine方法概述Console. WriteLine()方法將指定的輸入值寫入標準輸出流,后面跟一個行結束符,它比Console. Write()方法在輸出流中增加了換行功能,其他類似于Console. Write()方法。它也可以
53、被重載以支持所有類型值、字符串和其它對象。重載方法Console.WriteLine 方法重載列表Console.WriteLine 方法重載列表序號名稱說明1Console.WriteLine () 將當前行結束符寫入標準輸出流。 由 .NET Compact Framework 支持。 2Console.WriteLine (Boolean) 將指定布爾值的文本表示形式(后跟當前行結束符)寫入標準輸出流。 3Console.WriteLine (Char) 將指定的 Unicode 字符值(后跟當前行結束符)寫入標準輸出流。 由 .NET Compact Framework 支持。 4Co
54、nsole.WriteLine (Char) 將指定的 Unicode 字符數組(后跟當前行結束符)寫入標準輸出流。 由 .NET Compact Framework 支持。 5Console.WriteLine (Decimal) 將指定的 Decimal 值的文本表示形式(后跟當前行結束符)寫入標準輸出流。 6Console.WriteLine (Double) 將指定的雙精度浮點值的文本表示形式(后跟當前行結束符)寫入標準輸出流。 7Console.WriteLine (Int32) 將指定的 32 位有符號的整數值的文本表示(后跟當前行的結束符)寫入標準輸出流。 由 .NET Compact Framework 支持。 8Console.WriteLine (Int64) 將指定的 64 位有符號的整數值的文本表示(后跟當前行的結束符)寫入標準輸出流。 9Console.WriteLine (Object) 將指定對象的文本表示形式(后跟當前行結束符)寫入標準輸出流。 由 .NET Compact Framework 支持。 10Console.WriteLine (Single) 將指定的單精度浮點值的文本表示形式(后跟當前行結束符)寫入標準輸出流。 11Console.WriteLine (String) 將指定的字符串值(后跟當前行結束符)寫入標準輸出
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 健身器材用戶參與度提升策略實踐考核試卷
- 塑料鞋生產效率統(tǒng)計與分析考核試卷
- 數學空間想象力培養(yǎng)教具考核試卷
- 供應鏈大數據分析在供應鏈中的應用案例解析考核試卷
- 北京車牌借用合同范本
- 蔬菜購銷合同范本
- 藥店店員培訓課件
- 冷庫設備銷售合同范本
- 靜脈輸液的基本操作流程
- 數據傳輸網絡安全合作協(xié)議之數據傳輸保護服務合同
- 2025-2030年中國民用通信天線行業(yè)發(fā)展趨勢規(guī)劃研究報告
- 2025年計算機二級考試題庫350題含答案(WPS)
- 《幼小銜接家長會》課件
- 浙江省金華市婺城區(qū)2024-2025學年九年級上學期期末數學試卷(含答案)
- Unit 4 A glimpse of the future 說課稿-2023-2024學年高二下學期英語外研版(2019)選擇性必修第三冊001
- 萬達廣場籌備期項目管理規(guī)范
- 鄉(xiāng)村建設規(guī)劃許可培訓
- 加氣站安全課件
- GB/T 45037-2024糧油機械扒谷機
- 財務會計(對外經濟貿易大學)知到智慧樹章節(jié)測試課后答案2024年秋對外經濟貿易大學
- 分布式計算平臺設計與實現(xiàn)
評論
0/150
提交評論