Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 186 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
186
Dung lượng
1,63 MB
Nội dung
UDPM-CĐ-MĐ19-LTWIN2 TUYÊN BỐ BẢN QUYỀN Tài liệu thuộc loại sách giáo trình nên nguồn thơng tin phép dùng nguyên trích dùng cho mục đích đào tạo tham khảo Mọi mục đích khác mang tính lệch lạc sử dụng với mục đích kinh doanh thiếu lành mạnh bị nghiêm cấm LỜI GIỚI THIỆU Đây tài liệu biên soạn theo chương trình đào tạo Cao đẳng nghề Công nghệ thông tin (ứng dụng phần mềm) Để học tốt mơn học này, người học nên có kiến thức lập trình Lập trình Windows mơ đun nhằm giúp người học có kiến thức kỹ lập trình sở mơi trường Windows Với phạm vi tài liệu này, cung cấp cho người học kiến thức kỹ sau: Cài đặt sử dụng với môi trường C# Visual Studio.Net 2010 trở lên; Khai báo lớp đối tượng, thành phần lớp đối tượng sử dụng lớp đối tượng ngôn ngữ C#; Cài đặt xây dựng chương trình theo phương pháp hướng đối tượng ngơn ngữ lập trình C#; Xây dựng ứng dụng Windows Forms đơn giản kết nối đến sở liệu; Nghiêm túc, tỉ mỉ q trình tiếp cận với cơng cụ mới; Chủ động sáng tạo tìm kiếm ứng dụng viết C# Trong q trình biên soạn, chúng tơi có tham khảo nhiều nguồn tài liệu khác từ nguồn Internet Mặc dù cố gắng biên soạn lại chắn khơng tránh khỏi thiếu sót, tác giả mong nhận ý kiến đóng góp để tài liệu ngày hoàn thiện để cung cấp cho người học kiến thức kỹ trọng tâm Cần Thơ, ngày 17 tháng 06 năm 2018 Tham gia biên soạn Chủ biên Nguyễn Phát Minh MỤC LỤC TRANG LỜI GIỚI THIỆU GIÁO TRÌNH MƠN HỌC/MƠ ĐUN BÀI 1: Microsoft.NET Giới thiệu Microsoft.NET Biên dịch MSIL 11 Ngôn ngữ C# 12 BÀI 2: CƠ BẢN VỀ C# 15 Tại phải sử dụng C# 15 Kiểu liệu 15 Biến 19 Biểu thức 23 Khoảng trắng 24 Câu lệnh 24 Toán tử 33 Namspace 39 Cách dẫn biên dịch 40 BÀI 3: XÂY DỰNG LỚP ĐỐI TƯỢNG 41 Lớp đối tượng 41 Sử dụng thành viên static 49 Huỷ đối tượng 51 Truyền tham số nạp chồng phương thức 53 Đóng gói liệu với thuộc tính 58 BÀI 4: KẾ THỪA – ĐA HÌNH 61 Sự kế thừa 61 Đa hình 64 Lớp trừu tượng 68 Các lớp lồng 72 BÀI 5: NẠP CHỒNG TOÁN TỬ 75 Sử dụng từ khóa operator 75 Hỗ trợ ngôn ngữ NET khác 76 Sử dụng toán tử 76 Toán tử so sánh 78 Toán tử chuyển đổi 78 BÀI 6: CẤU TRÚC 83 Định nghĩa cấu trúc 83 Tạo cấu trúc 84 BÀI 7: THỰC THI GIAO DIỆN 87 Thực thi giao diện 87 Truy cập phương thức giao diện 92 Thực thi phủ giao diện 95 Thực thi giao diện tường minh 97 BÀI 8: MẢNG, CHỈ MỤC, TẬP HỢP 100 Mã bài: MĐ 19 - 08 100 Mảng 100 Câu lệnh foreach 103 Mảng đa chiều 104 Bộ mục giao diện tập hợp 110 Danh sách mảng, hàng đợi, ngăn xếp 117 Kiểu từ điển 128 BÀI 9: XỬ LÝ CHUỖI 133 Lớp đối tượng string 133 Các biểu thức quy tắc 142 BÀI 10: CƠ CHẾ ỦY QUYỀN VÀ SỰ KIỆN 151 Cơ chê ủy quyền 151 Sự kiện 163 BÀI 11: CÁC LỚP CƠ SỞ NET 169 Lớp đối tượng NET Framework 169 Lớp Timer 170 Lớp thư mục hệ thống 172 Lớp Math 173 Lớp thao tác tập tin 175 Làm việc với tập tin liệu 179 TÀI LIỆU THAM KHẢO 186 GIÁO TRÌNH MƠN HỌC/MƠ ĐUN Tên mơn học/mơ đun: LẬP TRÌNH WINDOWS (C#.NET) Mã mơn học/mơ đun: MĐ 19 Vị trí, tính chất, ý nghĩa vai trị mơn học/mơ đun: Vị trí: mơ đun bố trí giảng dạy sau mơn sở nghề Tính chất: mơ đun bắt buộc thuộc chun mơn nghề chương trình đào tạo Cao đẳng (ứng dụng phần mềm) Ý nghĩa vai trò môn học/mô đun: - Mục tiêu môn học/mô đun: - Về kiến thức: Hiểu kiến thức tảng Microsoft NET Biết kiến thức kỹ lập trình hướng đối tượng C# Có kiến thức kỹ giao diện C# Có kiến thức kỹ xử lý mảng, chuỗi; Có kiến thức kỹ chế uỷ quyền; - Về kỹ năng: Tạo ứng dụng windows sử dụng ngôn ngữ C# môi trường Net; - Về lực tự chủ trách nhiệm: Nghiêm túc, tỉ mỉ việc tiếp nhận kiến thức Chủ động, tích cực thực hành tìm kiếm nguồn tập liên quan Nội dung môn học/mô đun: Số Thời gian TT Tên mô đun Tổng Lý Thực Kiểm tra* số thuyết hành, (LT Bài tập TH) Bài 1: Microsoft.NET 2 Bài 2: Cơ C# 10 Bài 3: Xây dựng lớp – Đối tượng 12 Bài 4: Kế thừa – Đa hình Bài 5: Nạp chồng toán tử 6 Bài 6: Cấu trúc 10 7 Bài 7: Thực thi giao diện Bài 8: Mảng, mục tập hợp 12 Bài 9: Xử lý chuỗi Bài 10: Cơ chế uỷ quyền kiện Bài 11: Các lớp sở.NET Tổng cộng 10 2 12 90 30 56 10 11 BÀI 1: Microsoft.NET Mã bài: MĐ 19 - 01 Giới thiệu: Trong học sinh viên tìm hiểu tảng NET Microsoft Mục tiêu: Biết kiến thức tảng Microsoft.Net; Hiểu chế trình biên dịch MSIL; Biết nguồn gốc đời C#.Net; Thao tác mơi trường lập trình C#.Net; Nghiêm túc, tỉ mỉ q trình tiếp cận với mơi trường lập trình Nội dung chính: Giới thiệu về Microsoft.NET Tình hình trước MS.NET đời Cách vài năm Java Sun viết ra, có sức mạnh đáng kể, hướng tới việc chạy nhiều hệ điều hành khác nhau, độc lập với xử lý (Intel, Risc,…) Đặc biệt Java thích hợp cho việc viết ứng dụng Internet Tuy nhiên, Java lại có hạn chế mặt tốc độ thực tế vẫn chưa thịnh hành Mặc dù Sun Corporation IBM có đẩy mạnh Java, Microsoft dùng ASP để làm giảm khả ảnh hưởng Java Để lập trình Web, lâu người ta vẫn dùng CGI-Perl gần PHP, ngôn ngữ giống Perl tốc độ chạy nhanh Ta triển khai Perl Unix/Linux hay MS Windows Tuy nhiên có nhiều người khơng thích dùng thân ngôn ngữ hay qui ước khác thường Perl không phát triển thống nhất, công cụ xây dựng cho Perl mạnh nhiều nhóm phát triển người ta khơng đảm bảo tương lai ngày tốt đẹp Trong giới phát triển ứng dụng Windows ta viết ứng dụng Visual C++, Delphi hay Visual Basic, số công cụ phổ biến mạnh Trong Visual C++ ngơn ngữ mạnh khó sử dụng Visual Basic đơn giản dễ học, dễ dùng nên thơng dụng Lý Visual Basic giúp viết chương trình Windows dễ dàng mà không cần thiết phải biết nhiều cách thức MS Windows hoạt động, ta cần biết số kiến thức tối thiểu MS Windows lập trình Do theo quan điểm Visual Basic nên liên kết với Windows điều tự nhiên dễ hiểu, hạn chế Visual Basic ngôn ngữ hướng đối tượng (Object Oriented) Delphi hậu duệ Turbo Pascal Borland Nó giống tương đối dễ dùng Visual Basic Delphi ngôn ngữ hướng đối tượng Các điều khiển dùng Form Delphi tự động khởi tạo mã nguồn Tuy nhiên, chức khởi động mã nguồn Delphi gặp rắc rối có can thiệp người dùng vào Sau công ty Borland bị bán chuyên gia xây dựng nên Delphi chạy qua bên Microsoft, Delphi khơng cịn phát triển tốt nữa, người ta không dám đầu tư triển khai phần mềm vào Delphi Cơng ty sau phát triển dịng sản phẩm Jbuilder (dùng Java) khơng cịn quan tâm đến Delphi Tuy Visual Basic bền không cần phải khởi tạo mã nguồn Form thiết kế Visual Basic có nhiều khuyết điểm : • Khơng hỗ trợ thiết kế hướng đối tượng, khả thừa kế (inheritance) • dùng • • • • Giới hạn việc chạy nhiều tiểu trình ứng dụng, ví dụ ta khơng thể Visual Basic để viết Service kiểu NT Khả xử lý lỗi yếu, khơng thích hợp mơi trường Multi- tier Khó dùng chung với ngơn ngữ khác C++ Khơng có User Interface thích hợp cho Internet Do Visual Basic khơng thích hợp cho viết ứng Web Server nên Microsoft tạo ASP (Active Server Page) Các trang ASP vừa có tag HTML vừa chứa đoạn script (VBScript, JavaScript) nằm lẫn lộn Khi xử lý trang ASP, tag HTML gởi thẳng qua Browser, cịn script chuyển thành dòng HTML gởi đi, ngoại trừ function hay sub ASP vị trí script khác quan trọng Khi số chức viết tốt người ta dịch thành ActiveX đưa vào Web Server Tuy nhiên lý bảo mật nên ISP (Internet Service Provider) làm máy chủ cho Web site thường dè đặt cài ActiveX lạ máy họ Ngoài việc tháo gỡ phiên ActiveX công việc khó, thường xuyên làm cho Administrator nhức đầu Những người quản lý version DLL Windows điều than phiền phải đăng ký DLL đăng ký phiên DLL mà Và từ “DLL Hell” xuất tức địa ngục DLL… Sau để giúp cho việc lập trình ASP nhanh công cụ Visual InterDev, IDE (Integrated Development Environment) đời Visual InterDev tạo Design Time Controls cho việc thiết kế điều khiển web,… Tiếc thay Visual InterDev không bền vững nên sau thời gian nhà phát triển rời bỏ Tóm lại thân ASP cịn số khuyết điểm quan trọng, chạy Internet Information Server với Windows NT 4, ASP không đáng tin cậy Tóm lại giới lập trình theo Microsoft việc lập trình desktop lập trình hệ phân tán hay web không nhịp nhàng cho Để chuyển từ lập trình client hay desktop đến lập trình web chặng đường dài Nguồn gốc NET Đầu năm 1998, sau hoàn tất phiên Version Internet Information Server(IIS), đội ngũ lập trình Microsoft nhận thấy họ cịn nhiều sáng kiến để kiện toàn IIS Họ bắt đầu xây dựng kiến trúc tảng ý tưởng đặt tên Next Generation Windows Services (NGWS) Sau Visual Basic trình làng vào cuối 1998, dự án mang tên Visual Studio xác nhập vào NGWS Đội ngũ COM+/MTS góp vào universal runtime cho tất ngôn ngữ lập trình chung Visual Studio, tham vọng họ cung cấp cho ngơn ngữ lập trình công ty khác dùng chung Công việc xúc tiến cách hồn tồn bí mật hội nghị Professional Developers’ Conference Orlado vào tháng 7/2000 Đến tháng 11/2000 Microsoft phát hành Beta NET gồm đĩa CD Tính đến lúc Microsoft làm việc với NET gần năm rồi, Beta tương đối vững .NET mang dáng dấp sáng kiến áp dụng trước p-code UCSD Pascal Java Virtual Machine Có điều Microsoft góp nhặt sáng kiến người khác, kết hợp với sáng kiến để làm nên sản phẩm hoàn chỉnh từ bên lẫn bên ngồi Hiện Microsoft cơng bố phiên release NET Thật Microsoft đặt cược vào NET theo thơng tin cơng ty, tập trung 80% sức mạnh Microsoft để nghiên cứu triển khai NET (bao gồm nhân lực tài ?), tất sản phẩm Microsoft chuyển qua NET Microsoft NET Microsoft NET gồm phần : Framework Integrated Development Environment (IDE) Framework cung cấp cần thiết bản, chữ Framework có nghĩa khung hay khung cảnh ta dùng hạ tầng sở theo qui ước định để cơng việc trơi chảy IDE cung cấp môi trường giúp triển khai dễ dàng, nhanh chóng ứng dụng dựa tảng NET Nếu khơng có IDE dùng trình soạn thảo ví Notepad hay trình soạn thảo văn sử dụng command line để biên dịch thực thi, nhiên việc nhiều thời gian Tốt dùng IDE phát triển ứng dụng, cách dễ sử dụng Thành phần Framework quan trọng NET cốt lõi tinh hoa mơi trường, cịn IDE cơng cụ để phát triển dựa tảng thơi Trong NET tồn ngơn ngữ C#, Visual C++ hay Visual Basic.NET dùng IDE Tóm lại Microsoft NET tảng cho việc xây dựng thực thi ứng dụng phân tán hệ Bao gồm ứng dụng từ client đến server dịch vụ khác Một số tính Microsoft NET cho phép nhà phát triển sử dụng sau: Một mơ hình lập trình cho phép nhà phát triển xây dựng ứng dụng dịch vụ web ứng dụng client với Extensible Markup Language (XML) Tập hợp dịch vụ XML Web, Microsoft NET My Services cho phép nhà phát triển đơn giản tích hợp người dùng kinh nghiệm Cung cấp server phục vụ bao gồm: Windows 2000, SQL Server, BizTalk Server, tất điều tích hợp, hoạt động, quản lý dịch vụ XML Web ứng dụng Các phần mềm client Windows XP Windows CE giúp người phát triển phân phối sâu thuyết phục người dùng kinh nghiệm thơng qua dịng thiết bị Nhiều cơng cụ hỗ trợ Visual Studio NET, để phát triển dịch vụ Web XML, ứng dụng Windows hay web cách dể dàng hiệu Kiến trúc NET Framework NET Framework platform làm đơn giản việc phát triển ứng dụng môi trường phân tán Internet .NET Framework thiết kế đầy đủ để đáp ứng theo quan điểm sau: Để cung cấp mơi trường lập trình hướng đối tượng vững chắc, mã nguồn đối tượng lưu trữ thực thi cách cục Thực thi cục phân tán Internet, thực thi từ xa Để cung cấp môi trường thực thi mã nguồn mà tối thiểu việc đóng gói phần mềm tranh chấp phiên Để cung cấp môi trường thực thi mã nguồn mà đảm bảo việc thực thi an toàn mã nguồn, bao gồm việc mã nguồn tạo hãng thứ ba hay hãng mà tuân thủ theo kiến trúc NET Để cung cấp môi trường thực thi mã nguồn mà loại bỏ lỗi thực script hay môi trường thông dịch Để làm cho người phát triển có kinh nghiệm vững nắm vững nhiều kiểu ứng dụng khác Như từ ứng dụng Windows đến ứng dụng dựa web Để xây dựng tất thông tin dựa triên tiêu chuẩn công nghiệp để đảm bảo mã nguồn NET tích hợp với mã nguồn khác .NET Framework có hai thành phần chính: Common Language Runtime (CLR) thư viện lớp NET Framework CLR tảng NET Framework Chúng ta hiểu runtime agent quản lý mã nguồn thực thi, cung cấp dịch vụ cốt lõi như: quản lý nhớ, quản lý tiểu trình, quản lý từ xa Ngồi cịn thúc đẩy việc sử dụng kiểu an tồn hình thức khác việc xác mã nguồn, đảm bảo cho việc thực bảo mật mạnh mẽ Thật vậy, khái niệm quản lý mã nguồn nguyên lý tảng runtime Mã nguồn mà đích tới runtime biết mã nguồn quản lý (managed code) Trong mã nguồn mà khơng có đích tới runtime biết mã nguồn khơng quản lý (unmanaged code) Thư viện lớp, thành phần khác NET Framework tập hợp hướng đối tượng kiểu liệu dùng lại, cho phép phát triển ứng dụng từ ứng dụng truyền thống command-line hay ứng dụng có giao diện đồ họa (GUI) đến ứng dụng cung cấp ASP.NET, Web Form dịch vụ XML Web Mô tả thành phần NET framework Common Language Runtime (CLR) Như đề cập CLR thực quản lý nhớ, quản lý thực thi tiểu trình, thực thi mã nguồn, xác nhận mã nguồn an toàn, biên bịch dịch vụ hệ thống khác Những đặc tính tảng cho mã nguồn quản lý chạy CLR Do trọng đến bảo mật, thành phần quản lý cấp mức độ quyền hạn khác nhau, phụ thuộc vào nhiều yếu tố nguyên thủy chúng như: liên quan đến Internet, hệ thống mạng nhà máy, hay máy tính cục Điều có nghĩa rằng, thành phần quản lý có hay khơng có quyền thực thao tác truy cập tập tin, thao tác truy cập registry, hay chức nhạy cảm khác CLR thúc đẩy việc mã nguồn thực việc truy cập bảo mật Ví dụ, người sử dụng giới hạn việc thực thi nhúng vào trang web chạy hoạt hình hình hay hát nhạc, truy cập liệu riêng tư, tập tin hệ thống, hay truy cập mạng Do đó, đặc tính bảo mật CLR cho phép phần mềm đóng gói Inernet có nhiều đặc tính mà không ảnh hưởng đến việc bảo mật hệ thống CLR thúc đẩy cho mã nguồn thực thi mạnh mẽ việc thực thi mã nguồn xác xác nhận mã nguồn Nền tảng việc thực Common Type System (CTS) CTS đảm bảo mã nguồn quản lý tự mô tả (self- describing) Sự khác Microsoft trình biên dịch ngơn ngữ hãng thứ ba việc tạo mã nguồn quản lý thích hợp với CTS Điều mã nguồn quản lý sử dụng kiểu quản lý khác thể hiện, thúc đẩy nghiêm ngặt việc sử dụng kiểu liệu xác an tồn Thêm vào đó, mơi trường quản lý runtime thực việc tự động xử lý layout đối tượng quản lý tham chiếu đến đối tượng, giải phóng chúng chúng khơng cịn sử dụng Việc quản lý nhớ tự động giải hai lỗi chung ứng dụng: thiếu nhớ tham chiếu nhớ không hợp lệ Trong runtime thiết kế cho phần mềm tương lai, hỗ trợ cho phân mềm ngày trước Khả hoạt động qua lại mã nguồn quản lý mã nguồn không quản lý cho phép người phát triển tiếp tục sử dụng thành phần cần thiết COM DLL Rutime thiết kế để cải tiến hiệu suất thực Mặc dù CLR cung cấp nhiều tiêu chuẩn dịch vụ runtime, mã nguồn quản lý không dịch Có đặc tính gọi Just-in-Time (JIT) biên dịch tất mã nguồn quản lý vào ngôn ngữ máy hệ thống vào lúc mà thực thi Khi đó, trình quản lý nhớ xóa bỏ phân mảnh nhớ gia tăng tham chiếu nhớ cục bộ, kết gia tăng hiệu thực thi Thư viện lớp NET Framework Thư viện lớp NET Framework tập hợp kiểu liệu dùng lại kết hợp chặt chẽ với Common Language Runtime Thư viện lớp hướng đối tượng cung cấp kiểu liệu mà mã nguồn quản lý dẫn xuất Điều không làm cho kiểu liệu NET Framework dễ sử dụng mà làm giảm thời gian liên quan đến việc học đặc tính NET Framework Thêm vào đó, thành phần hãng thứ ba tích hợp với lớp NET Framework Cũng mong đợi người phát triển với thư viện lớp hướng đối tượng, kiểu liệu NET Framework cho phép người phát triển thiết lập nhiều mức độ thơng dụng việc lập trình, bao gồm nhiệm vụ như: quản lý chuỗi, thu thập hay chọn lọc liệu, kết nối với cở liệu, truy cập tập tin Ngoài nhiệm vụ thơng dụng Thư viện lớp cịn đưa vào kiểu liệu để hỗ trợ cho kịch phát triển chuyên biệt khác Ví dụ người phát triển sử dụng NET Framework để phát triển kiểu ứng dụng dịch vụ sau: Ứng dụng Console Ứng dụng giao diện GUI Windows (Windows Forms) 10 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 vẫn 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 về 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 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 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); {0}", Console.WriteLine("Machine: 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: 172 {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:\WINDOWS;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 toán học Lớp Math lớp sealed, khơng thể 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, khơng thể 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 Phương thức Math 173 Lớp Math Phương thức Mô tả Abs Trả trị tuyệt đối số Ceiling Trả giá trị nhỏ hay giá trị đưa Exp Trả giá trị e với mũ đưa Floor Trả giá trị lớn hay giá trị đưa IEEERemainder 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ấuchấm động nhị phân Log Trả giá trị logarit giá trị đưa Log10 Trả giá trị logarit số 10 số đưa Max Trả số lớn hai số Min Trả số nhỏ hai số Pow Trả kết xy Round Trả giá trị làm tròn Sign Trả giá trị dấu số -1 số âm nếusố dương Sqrt Trả bậc hai số Acos Trả giá trị góc mà cosin với giá trị đưa Asin Trả giá trị góc mà sin với giá trị đưa Atan Trả giá trị góc mà tang với góc đưara Trả giá trị góc mà tang với tang củađiểm (x,y) đưa Atan2 Cos Trả giá trị cosin góc đưa Cosh Trả giá trị hyperbolic cosin góc đưa Sin Trả giá trị sin góc đưa Sinh Trả giá trị hyperbolic góc đưa Tan Trả giá trị tang góc Tanh Trả giá trị hyperbolic tang góc Ngoà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 dễ hiểu dễ sử dụng Ví dụ sau minh họa việc sử dụng số hàm toán học sau: Sử dụng vài hàm toán học using System; namespace Programming_CSharp { public class Tester { public static void Main() { int val2; char ch; 174 for(double ctr = 0.0; ctr < Doc xong! Với ứng dụng này, đọc liệu mà viết ví dụ trước Trong ví dụ tạo luồng FileStream Lúc này, mode thao tác tập tin sử dụng mode FileMode.Open Sau thực việc gắn luồng với luồng BinaryReader dòng tiếp sau, luồng giúp cho đọc thông tin nhị phân: FileStream myFile = new FileStream( args[0], FileMode.Open); BinaryReader brFile = new BinaryReader(myFile); Sau tạo luồng giúp cho việc đọc thông tin nhị phân từ tập tin, chương trình bắt đầu đọc thơng qua vịng lặp: while (brFile.PeekChar() != -1) { Console.Write("", brFile.ReadInt32()); } Ở có vài khác nhỏ, phương thức PeekChar lớp BinaryReader sử dụng Phương thức lấy ký tự luồng Nếu ký tự cuối tập tin giá trị -1 trả Ngược lại, ký tự trả Khi ký tự khơng phải ký tự cuối tập tin lệnh bên vòng lặp đọc số integer từ đối tượng BinaryStream brFile Phương thức sử dụng để đọc số nguyên ReadInt32, sử dụng kiểu tên Framework tốt kiểu C# đưa Nên nhớ rằng, tất lớp từ Framework điều gọi ngôn ngữ C# chúng phận ngôn ngữ C# Những lớp sử dụng tốt ngơn ngữ khác C# Ngồi lớp BinaryReader cịn có phương thức khác để thực việc đọc kiểu liệu khác Những phương thức đọc sử dụng với cách mà ReadInt32 sử dụng chương trình Bảng 12.4 sau liệt kê số phương thức dùng để đọc kiểu liệu Phương thức Ý nghĩa Đọc ký tự chuyển vị trí đọc sang vị trí tiếp theo.Phương Read thức nạp chồng gồm phương thức Đọc giá trị boolean từ luồng thời chuyển vị trí đọcsang 184 ReadBoolean byte ReadByte Đọc byte từ luồng thời chuyển vị trí đọc sang 1byte Đọc n byte từ luồng thời sang mảng byte chuyển vịtrí đọc ReadBytes sang n byte Đọc vị trí luồng hành chuyển vị trí đọc luồng ReadChar theo sau sử dụng mã hóa ký tự xác định đọc từluồng Đọc n ký tự từ luồng hành vào mảng n ký tự Và chuyển vị ReadChars trí đọc luồng theo sau sử dụng mã hóa ký tựxác định đọc từ luồng ReadDecimal Đọc giá trị decimal chuyển vị trí đọc sang 16 byte ReadDouble Đọc giá trị thực byte chuyển vị trí đọc sang byte ReadInt16 Đọc giá trị byte integer có dấu chuyển vị trí đọc sang byte ReadInt32 Đọc giá trị byte integer có dấu chuyển vị trí đọc sang byte ReadInt64 Đọc giá trị byte integer có dấu chuyển vị trí đọc sang byte ReadSByte Đọc signed byte từ luồng chuyển vị trí đọc sang byte ReadSingle Đọc giá trị thực byte từ luồng chuyển vị trí đọc sang byte Đọc chuỗi từ luồng Chuỗi cố định chiều dài trước.Và ReadString mã hóa lần số nguyên bit Đọc giá trị 2-byte unsigned integer từ luồng Sử dụng mã hóa thứ tự ReadUInt16 nhỏ cuối (little endian encoding) Và chuyển vị trí hiệnhành sang byte ReadUInt64 Đọc 8-byte unsigned integer từ luống hành chuyển sang8 byte 185 TÀI LIỆU THAM KHẢO C# 2008 - Lập Trình Cơ Bản nâng cao Nhà xuất lao động xã hội; MSDN Library; Jesse Liberty, Programming C#, Nhà xuất bản: O’Reilly; Bradley L.Jones ,C# in 21 Days, Nhà xuất bản: SAMS 186