Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 15 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
15
Dung lượng
231,03 KB
Nội dung
CÁC LỚP CƠ SỞ NET · Lớp đối tượng NET Framework • Common Language Specification(CLR) • Kiểu liệu namespace • Tiêu chuẩn ECMA • Tìm hiểu lớp Framework · Lớp Timer · Lớp thư mục & hệ thống · Lớp Math · Lớp thao tác tập tin • Sao chép tập tin • Lấy thông tin tập tin · Làm việc với tập tin liệu • Luồng nhập xuất • Thứ tự việc đọc tập tin • Các phương pháp cho việc tạo mở tập tin • Viết vào tập tin văn • Đọc tập tin văn • Viết thơng tin nhị phân vào tập tin • Đọc thơng tin nhi phân từ tập tin · Câu hỏi & tập Cho đến lúc tìm hiểu nhiều lớp đối tượng mà ngôn ngữ C# cung cấp cho Và viết chương trình C# túy dùng console làm giao diện kết xuất Đối với việc tìm hiểu ngơn ngữ lập trình việc viết chương trình mà giao diện đơn giản tốt Trong phần thứ hai (từ chương 14) giáo trình tìm hiểu xây dựng ứng dụng Windows thông qua Visual C# Trong chương tìm hiểu lớp sở mà NET cung cấp, lớp đơn giản giúp thực tốt thao tác nhập xuất, thao tác truy cập hệ thống, thực thi phép toán học, Lớp đối tượng NET Framework NET Framework chứa số lượng nhiều kiểu lớp, kiểu liệt kê, cấu trúc, giao diện nhiều kiểu liệu khác Thật vậy, có hàng ngàn số lượng kiểu Những lớp điều cho phép sử dụng chương trình C# Chúng ta tìm hiểu vài kiểu liệu thường sử dụng chương Các lớp trình bày thơng qua ví dụ minh họa đơn giản Từ ví dụ minh họa cách sử dụng lớp sở mở rộng để tạo chương trình phức tạp Common Language Specification (CLR) Những lớp bên Framework viết với ngôn ngữ xác nhận chung (CLR) CLR đề cập vào phần đầu sách thảo luận MS.NET chương CLS tập hợp luật hay quy tắc mà tất ngôn ngữ thực bên NET platform phải tuân thủ theo Tập hợp luật bao gồm kiểu liệu hệ thống chung, kiểu liệu mà tìm hiểu chương Nền tảng ngơn ngữ C# Bằng cách đưa vào tập luật này, môi trường thực thi chung thực thi chương trình mà khơng quan tâm đến cú pháp ngơn ngữ sử dụng Lợi ích theo sau CLS mã nguồn viết ngơn ngữ gọi sử dụng ngôn ngữ khác Bởi thơng thường bên Framework với CLS, chúng sử dụng khơng ngơn ngữ C# mà cịn ngơn ngữ tương thích với CLS Visual Basic.NET JScript.NET Kiểu liệu namespace Mã nguồn bên Framework tổ chức bên namespace Có hàng trăm namespace bên Framework sử dụng để tổ chức hàng ngàn lớp đối tượng kiểu liệu khác Một vài namespace lưu trữ bên namespace khác Ví dụ sử dụng kiểu liệu DateTime chứa namespace System Kiểu Random chứa namespace System Nhiều kiểu liệu phục vụ cho thao tác nhập xuất lưu trữ namespace chức namespace System namespace System.IO Nhiều kiểu liệu thường dùng để làm việc với liệu XML đặt bên namespace System.XML Chúng ta tìm hiểu namespace tài liệu trực tuyến Microsoft MSDN Online chẳng hạn Tiêu chuẩn ECMA Không phải tất kiểu liệu bên namespace cần thiết phải tương thích với tất ngôn ngữ khác Hơn nữa, công cụ phát triển tạo công ty khác cho ngôn ngữ C# khơng bao hàm phải tương thích với mã nguồn thông thường Khi ngôn ngữ C# hình thành Microsoft xác nhận đưa số lượng lớn kiểu liệu cho bảng tiêu chuẩn cho C# để chuẩn hóa Bằng cách xác nhận kiểu liệu theo tiêu chuẩn, điều xem việc mở cánh cửa cho nhà phát triển khác tạo cơng cụ trình biên dịch C# sử dụng namespace kiểu liệu Khi mã nguồn bên cơng cụ Microsoft tương thích với cơng cụ công ty khác Những lớp đối tượng chuẩn hóa định vị bên namespace System Những namespace khác chứa lớp khơng chuẩn hóa Nếu lớp phần tiêu chuẩn, khơng hỗ trợ tất hệ điều hành môi trường thực thi mà chúng viết để hỗ trợ C# Ví dụ, Microsoft thêm vào vài namespace với SDK Microsoft.VisualBasic, Microsoft.CSharp, Microsoft.Jscript Microsoft.Win32 Những namespace phần tiêu chuẩn ECMA Do chúng khơng có giá trị tất mơi trường phát triển Tìm hiểu lớp Framework Như biết có hàng ngàn lớp kiểu liệu khác bên thư viện sở Có thể tốn vài sách có kích thước giáo trình để nói tồn chúng Trước tìm hiểu lớp bản, bạn xem tổng quan tài liệu trực tuyến để biết thêm lớp cở Tất lớp kiểu liệu khác trình bày chương điều phần tiêu chuẩn xác nhận ECMA Lưu ý: Không sử dụng kiểu liệu bên lớp thư viện mà cịn mở rộng kiểu liệu Lớp Timer Chúng ta bắt đầu với ví dụ 12.1 Ví dụ minh họa đơn giản thiết kế khơng tốt Ví dụ 12.1: Hiển thị thời gian // Timer01.cs: Hiển thị ngày thời gian // nhấn Ctrl+C để thoát namespace Programming_CSharp { using System; public class Tester { public static void Main() { while (true) { Console.WriteLine(“\n {0}”, DateTime.Now); } } } } Kết quả: 12/24/2001 3:21:20 PM - Như thấy, kết chương trình thực thi vào lúc 3:21 vào ngày 24 tháng 12 Danh sách thể đồng hồ xuất dòng lệnh, chúng dường cập nhật giây đồng hồ Thật vậy, thơng thường cập nhật nhiều lần, lưu ý giây đồng hồ thay đổi giá trị xuất thật khác Chương trình chạy đến ta nhấn thoát Ctrl + C Trong chương trình ta sử dụng kiểu liệu DateTime, cấu trúc chứa namespace System bên thư viện sở Cấu trúc có thuộc tính tĩnh Now trả thời gian hành Có nhiều liệu thành viên phương thức thêm vào cấu trúc DateTime Chúng ta tìm hiểu thêm DateTime thư viện trực tuyến lớp sở NET Framework Cách tốt để thị ngày hình sử dụng Timer Một Timer cho phép xử lý (hình thức delegate) gọi thời gian xác định hay sau chu kỳ trơi qua Framework chứa lớp Timer bên namespace System.Timers Lớp sử dụng ví dụ 12.2 theo sau: Ví dụ 12.2: Sử dụng Timer // Timer02.cs: hiểu thị ngày sử dụng Timer // nhấn Ctrl+C hay ‘q’ Enter để thoát namespace Programming_CSharp { using System; using System.Timers; public class Tester { public static void Main() { Timer myTimer = new Timer(); // khai báo hàm xử lý myTimer.Elapsed += new ElapsedEventHandler( DisplayTimeEvent); // khoảng thời gian delay myTimer.Interval = 1000; myTimer.Start(); // thực vịng lặp để chờ while ( Console.Read() != ‘q’) { ; } } // khơng làm hết! public static void DisplayTimeEvent( object source, ElapsedEventArgs t) { Console.Write(“\n{0}”, DateTime.Now); } } } Kết quả: 12/24/2001 3:45:20 PM Kết thực giống ví dụ trước Tuy nhiên, chương trình thực tốt nhiều so với chương trình ban đầu Thay cập nhật khơng ngừng ngày hiển thị, chương trình cập nhật sau khoảng giây Chúng ta xem kỹ cách mà Timer làm việc Một đối tượng Timer tạo ra, thuộc tính Interval thiết lập Tiếp theo phương thức thực sau khoảng thời gian interval gắn với Timer Trong trường hợp phương thức DisplayTimeEvent đựơc thực thi, phương thức định nghĩa bên Khi Timer thực phương thức Start bắt đầu tính interval Một thuộc tính thành viên khác Timer AutoReset mà cần biết là: thay đổi giá trị mặc định từ true sang false, kiện Timer thực lần Khi AutoReset có giá trị true hay ta thiết lập giá trị true Timer kích hoạt kiện thực thi phương thức thời gian đưa (interval) Trong chương trình chứa vòng lặp thực đến người dùng nhấn ký tự ‘q’ Enter Nếu khơng chương trình thực tiếp tục vịng lặp Khơng có thực vịng lặp này, muốn thêm vào vòng lặp xứ lý khác Chúng ta không cần thiết phải gọi phương thức DisplayTimeEvent vịng lặp gọi tự động vào khoảng thời gian xác định interval Timer chương trình dùng để thể ngày hình Timer kiện Timer sử dụng cho nhiều chương trình khác Như tạo Timer để tắt chương trình khác vào thời điểm đưa Chúng ta tạo chương trình backup thường xuyên để chép liệu quan trọng theo định kỳ thời gian Hay tạo chương trình tự động log off người sử dụng hay kết thúc chương trình sau khoảng thời gian mà khơng có hoạt động xảy Nói chung có nhiều cách sử dụng Timer này, lớp Timer hữa ích Lớp thư mục hệ thống Đôi cần biết thông tin hệ thống máy mà chương trình thực hiện, điều khơng khó khăn gì, NET hỗ trợ số lớp để thực việc Trong vídụ minh họa 12.3 bên trình bày cách lấy thơng tin máy tính mơi trường Việc thực thơng qua sử dụng lớp Environment, lớp chứa số liệu thành viên tĩnh thú vị với thông tin chúng Ví dụ 12.3: Sử dụng lớp Environment // env01.cs: hiển thị thông tin lớp Environment namespace Programming_CSharp { using System; class Tester { public static void Main() { // thuộc tính Console.WriteLine(“**************************”); Console.WriteLine(“Command: {0}”, Environment.CommandLine); Console.WriteLine(“Curr Dir: {0}”, Environment.CurrentDirectory); Console.WriteLine(“Sys Dir: {0}”, Environment.SystemDirectory); Console.WriteLine(“Version: {0}”, Environment.Version); Console.WriteLine(“OS Version: {0}”, Environment.OSVersion); Console.WriteLine(“Machine: {0}”, Environment.MachineName); Console.WriteLine(“Memory: {0}”, Environment.WorkingSet); // dùng vài phương thức Console.WriteLine(“**************************” ); string [] args = Environment.GetCommandLineArgs(); for( int i = 0; i < args.Length; i++) { Console.WriteLine(“Arg {0}: {1}”, i, args[i]); } Console.WriteLine(“**************************”); string [] drivers = Environment.GetLogicalDrives(); for( int i = 0; i < drivers.Length; i++) { Console.WriteLine(“Drive {0}: {1}”, i, drivers[i]); } Console.WriteLine(“**************************” ); Console.WriteLine(“Path: {0}”, Environment.GetEnvironmentVariable(“Path”) ); Console.WriteLine(“**************************”); } } } Kết thực với máy tính tác giả (kết khác với máy tính bạn:) ************************** Command: D:\Working\ConsoleApplication1\bin\Debug\Env01.exe Curr Dir: D:\Working\ConsoleApplication1\bin\Debug Sys Dir: C:\WINDOWS\System32 Version: 1.0.3705.0 OS Version: Microsoft Windows NT 5.1.2600.0 Machine: MUN Memory: 4575232 ************************** Arg 0: D:\Working\ConsoleApplication1\bin\Debug\Env01.exe ************************ ** Drive 0: A:\ Drive 1: C:\ Drive 2: D:\ Drive 3: E:\ ************************ ** Path: C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDO WS;C:\WINDO WS\COMMAND;C:\NC ************************** Như thấy thành viên tĩnh lớp Environment cung cấp cho ta thông tin hệ thống môi trường Đầu tiên lệnh thực đưa chương trình thực thi tức chương trình Env01.exe, thuộc tính dùng để lấy Command- Line Thư mục hành thư mục chứa chương trình thực thi thơng qua thuộc tính CurrentDirectory Tương tự thuộc tính hệ thống như: thư mục hệ thống, phiên OS, tên máy tính, nhớ lấy Tiếp theo hai phương thức lớp Environment trả mảng chuỗi ký tự, bao gồm phương thức lấy đối mục dịng lệnh GetCommandLineArgs phương thức nhận thơng tin đĩa logic máy tính GetLogicalDrives Hai vòng lặp đơn giản để xuất giá trị thành phần mảng ra.Cuối phương thức GetEnvironmentVariable nhận biến môi trường giá trị chúng hệ thống thời Lớp Math Từ đầu tới thực phép toán cộng, trừ, nhân, chia, chia dư Còn nhiều phép toán mạnh thường sử dụng mà chúng chưa đề cập tới C# cung cấp tập hợp phép toán toán học bên lớp sở Chúng chứa bên namespace System.Math Bảng 12.1 sau liệt kê hàm tốn học Lớp Math lớp sealed, xây dựng lớp mà kế thừa từ lớp Thêm vào tất lớp liệu thành viên tĩnh, tạo đối tượng có kiểu Math Thay vào sử dụng thành viên phương thức với tên lớp Lớp Math Phương thức Abs Ceiling Exp Floor IEEERemainder Log Log10 Max Min Pow Round Sign Sqrt Acos Asin Atan Mô tả Trả trị tuyệt đối số Trả giá trị nhỏ hay giá trị đưa Trả giá trị e với mũ đưa Trả giá trị lớn hay giá trị đưa Trả phần dư phép chia hai hai số thực Phép chia theo tiêu chuẩn IEEE cho phép toán dấu chấm động nhị phân Trả giá trị logarit giá trị đưa Trả giá trị logarit số 10 số đưa Trả số lớn hai số Trả số nhỏ hai số Trả kết xy Trả giá trị làm tròn Trả giá trị dấu số -1 số âm số dương Trả bậc hai số Trả giá trị góc mà cosin với giá trị đưa Trả giá trị góc mà sin với giá trị đưa Trả giá trị góc mà tang với góc đưa Atan2 Cos Cosh Sin Trả giá trị góc mà tang với tang điểm (x,y) đưa Trả giá trị cosin góc đưa Trả giá trị hyperbolic cosin góc đưa Trả giá trị sin góc đưa Sinh Tan Tanh Trả giá trị hyperbolic góc đưa Trả giá trị tang góc Trả giá trị hyperbolic tang góc Hình 12.1 : Phương thức Math Ngồi lớp Math đưa vào hai số: PI số E, PI trả giá trị pi toán học 3.14159265358979323846 Giá trị E trả giá trị 2.7182818284590452354 Hầu hết hàm toán học bảng 12.1 dễ hiểu dễ sử dụng Ví dụ 12.4 sau minh họa việc sử dụng số hàm toán học sau: ... Hình 12 .1 : Phương thức Math Ngoài lớp Math đưa vào hai số: PI số E, PI trả giá trị pi toán học 3 .14 159265358979323846 Giá trị E trả giá trị 2. 718 2 818 284590452354 Hầu hết hàm toán học bảng 12 .1. .. Lưu ý: Khơng sử dụng kiểu liệu bên lớp thư viện mà cịn mở rộng kiểu liệu Lớp Timer Chúng ta bắt đầu với ví dụ 12 .1 Ví dụ minh họa đơn giản thiết kế không tốt Ví dụ 12 .1: Hiển thị thời gian ... D:\Working\ConsoleApplication1\bin\Debug\Env 01. exe Curr Dir: D:\Working\ConsoleApplication1\bin\Debug Sys Dir: C:\WINDOWS\System32 Version: 1. 0.3705.0 OS Version: Microsoft Windows NT 5 .1. 2600.0 Machine: