
NỀN TẢNG NGÔN NGỮ C# phần 7
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
NỀN TẢNG NGÔN NGỮ C# phần 7 Ví dụ 3.21: Tạo các namespace lồng nhau.-----------------------------------------------------------------------------namespace MyLib{ namespace Demo { using System; public class Tester { public static int Main() { for (int i =0; i < 10; i++) { Console.WriteLine( “i: {0}”, i); } return 0; } } }}-----------------------------------------------------------------------------Lớp Tester trong ví dụ 3.21 được đặt trong namespace Demo do đó có thể tạo một lớpTester khác bên ngoài namespace Demo hay bên ngoài namespace MyLib màkhông có bất cứ sự tranh cấp hay xung đột nào. Để truy cập lớp Tester dùng cú phápsau: MyLib.Demo.TesterTrong một namespace một lớp có thể gọi một lớp khác thuộc các cấp namespace khácnhau,ví dụ tiếp sau minh họa việc gọi một hàm thuộc một lớp trong namespace khác. Ví dụ 3.22: Gọi một namespace thành viên.-----------------------------------------------------------------------------using System;namespace MyLib{ namespace Demo1 { class Example1 { public static void Show1() { Console.WriteLine(“Lop Example1”); } } } namespace Demo2 { public class Tester { public static int Main() { Demo1.Example1.Show1( ); Demo1.Example2.Show2( ); return 0; } } }}// Lớp Example2 có cùng namespace MyLib.Demo1 với//lớp Example1 nhưng hai khai báo không cùng mộtkhối. namespace MyLib.Demo1{ class Example2 { public static void Show2() { Console.WriteLine(“Lop Example2”); } }}----------------------------------------------------------------------------- Kết quả:Lop Exemple1 Lop Exemple2 -----------------------------------------------------------------------------Ví dụ 3.22 trên có hai điểm cần lưu ý là cách gọi một namespace thành viên và cáchkhai báo các namspace. Như chúng ta thấy trong namespace MyLib có hai namespacecon cùng cấp là Demo1 và Demo2, hàm Main của Demo2 sẽ được chương trình thựchiện, và trong hàm Main này có gọi hai hàm thành viên tĩnh của hai lớp Example1và Example2 của namespace Demo1.Ví dụ trên cũng đưa ra cách khai báo khác các lớp trong namespace. Hai lớpExample1 và Example2 điều cùng thuộc một namespace MyLib.Demo1, tuy nhiênExample2 được khai báo một khối riêng lẻ bằng cách sử dụng khai báo:namespace MyLib.Demo1{ class Example2 { .... }}Việc khai báo riêng lẻ này có thể cho phép trên nhiều tập tin nguồn khác nhau, miễn saođảm bảo khai báo đúng tên namspace thì chúng vẫn thuộc về cùng một namespace.Các chỉ dẫn biên dịch Đối với các ví dụ minh họa trong các phần trước, khi biên dịch thì toàn bộchương trình sẽ được biên dịch. Tuy nhiên, có yêu cầu thực tế là chúng ta chỉ muốnmột phần trong chương trình được biên dịch độc lập, ví dụ như khi debug chương trìnhhoặc xây dựng các ứng dụng...Trước khi một mã nguồn được biên dịch, một chương trình khác được gọi là chươngtrình tiền xử lý sẽ thực hiện trước và chuẩn bị các đoạn mã nguồn để biên dịch. Chươngtrình tiền xử lý này sẽ tìm trong mã nguồn các kí hiệu chỉ dẫn biên dịch đặc biệt, tất cảcác chỉ dẫn biên dịch này đều được bắt đầu với dấu rào (#). Các chỉ dẫn cho phép chúngta định nghĩa các định danh và kiểm tra các sự tồn tại của các định danh đó.Định nghĩa định danh Câu lệnh tiền xử lý sau: #define DEBUGLệnh trên định nghĩa một định danh tiền xử lý có tên là DEBUG. Mặc dù những chỉ thịtiền xửlý khác có thể được đặt bất cứ ở đâu trong chương trình, nhưng với chỉ thị định nghĩađịnh danh thì phải đặt trước tất cả các lệnh khác, bao gồm cả câu lệnh using.Để kiểm tra một định danh đã được định nghĩa thì ta dùng cú pháp #if . Dođó tacó thể viết như sau: #define DEBUG //...Các đoạn mã nguồn bình thường, không bị tác động bởi trình tiền xử lý ... #if DEBUG // Các đoạn mã nguồn trong khối if debug được biên dịch #else // Các đoạn mã nguồn không định nghĩa debug và không được biên dịch #endif //...Các đoạn mã nguồn bình thường, không bị tác động bởi trình tiền xử lýKhi chương trình tiền xử lý thực hiện, chúng sẽ tìm thấy câu lệnh #define DEBUG vàlưu lại định danh DEBUG này. Tiếp theo trình tiền xử lý này sẽ bỏ qua tất cảcác đoạn mã bình thường khác của C# và tìm các khối #if, #else, và #endif.Câu lệnh #if sẽ kiểm tra định danh DEBUG, do định danh này đã được định nghĩa, nênđoạnmã nguồn giữa khối #if đến #else sẽ được biên dịch vào chương trình. Còn đoạn mãnguồn giữa #else và #endif sẽ không được biên dịch. Tức là đoạn mã nguồn này sẽkhông được thực hiện hay xuất hiện bên trong mã hợp ngữ của chương trình.Trường hợp câu lệnh #if sai tức là không có định nghĩa một định danh DEBUG trongchương trình, khi đó đoạn mã nguồn ở giữa khối #if và #else sẽ không được đưa vàochương trình để biên dịch mà ngược lại đoạn mã nguồn ở giữa khối #else và #endif sẽđược biên dịch. Lưu ý: Tất cả các đoạn mã nguồn bên ngoài #if và #endif thì không bị tác động bởi trình tiền xử lý và tất cả các mã này đều được đưa vào để biên dịch.Không định nghĩa định danh Sử dụng chỉ thị tiền xử lý #undef để xác định trạng thái của một định danh làkhông được định nghĩa. Như chúng ta đã biết trình tiền xử lý sẽ thực hiện từ trên xuốngdưới, do vậy một định danh đã được khai báo bên trên với chỉ thị #define sẽ có hiệuquả đến khi một gọi câu lệnh #undef định danh đó hay đến cuối chương trình: #define DE ...
Tìm kiếm theo từ khóa liên quan:
Công nghệ thông tin kỹ thuật lập trình ngôn ngữ lập trình ngôn ngữ C# C# NỀN TẢNG NGÔN NGỮ C# phần 7Tài liệu có liên quan:
-
52 trang 464 1 0
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 364 0 0 -
96 trang 333 0 0
-
74 trang 329 0 0
-
Đồ án tốt nghiệp: Xây dựng ứng dụng di động android quản lý khách hàng cắt tóc
81 trang 318 0 0 -
Tài liệu dạy học môn Tin học trong chương trình đào tạo trình độ cao đẳng
348 trang 317 1 0 -
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 313 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 306 0 0 -
Báo cáo thực tập thực tế: Nghiên cứu và xây dựng website bằng Wordpress
24 trang 303 0 0 -
Tài liệu hướng dẫn sử dụng thư điện tử tài nguyên và môi trường
72 trang 299 0 0 -
EBay - Internet và câu chuyện thần kỳ: Phần 1
143 trang 292 0 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 292 0 0 -
64 trang 290 0 0
-
Bài giảng An toàn và bảo mật thông tin - Trường đại học Thương Mại
31 trang 271 0 0 -
47 trang 260 0 0
-
LUẬN VĂN: TÌM HIỂU PHƯƠNG PHÁP HỌC TÍCH CỰC VÀ ỨNG DỤNG CHO BÀI TOÁN LỌC THƯ RÁC
65 trang 260 0 0 -
Giáo trình Hệ điều hành: Phần 2
53 trang 253 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 246 0 0 -
Bài giảng Một số hướng nghiên cứu và ứng dụng - Lê Thanh Hương
13 trang 245 0 0 -
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 241 0 0