Các giải pháp lập trình CSharp- P5
Số trang: 10
Loại file: pdf
Dung lượng: 2.66 MB
Lượt xem: 14
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Các giải pháp lập trình CSharp- P5: Các giải pháp lập trình C# khảo sát chiều rộng của thư viện lớp .NET Framework và cung cấp giải pháp cụ thể cho các vấn đềthường gặp. Mỗi giải pháp được trình bày theo dạng “vấn đề/giải pháp” một cách ngắn gọn và kèm theo là các ví dụ mẫu.
Nội dung trích xuất từ tài liệu:
Các giải pháp lập trình CSharp- P5 41 Chương 1: Phát triển ứng dụng • public static int Main(string[] args) {}Khi chạy, đối số args sẽ chứa một chuỗi cho mỗi giá trị được nhập trên dòng lệnh và nằm sautên ứng dụng. Phương thức Main trong ví dụ dưới đây sẽ duyệt qua mỗi đối số dòng lệnh đượctruyền cho nó và hiển thị chúng ra cửa sổ Console:public class CmdLineArgExample { public static void Main(string[] args) { // Duyệt qua các đối số dòng lệnh. foreach (string s in args) { System.Console.WriteLine(s); } }}Khi thực thi CmdLineArgExample với lệnh:CmdLineArgExample one wo three four five sixứng dụng sẽ tạo ra kết xuất như sau:one two threefourfivesixChú ý rằng, khác với C và C++, tên của ứng dụng không nằm trong mảng chứa các đối số.Tất cả ký tự nằm trong dấu nháy kép (“) được xem như một đối số, nhưng dấu nháy đơn ( )chỉ được xem như ký tự bình thường. Nếu muốn sử dụng dấu nháy kép trong đối số, đặt ký tựvạch ngược () trước nó. Tất cả các khoảng trắng đều bị bỏ qua trừ khi chúng nằm trong dấunháy kép.Nếu muốn truy xuất đối số dòng lệnh ở nơi khác (không phải trong phương thức Main), bạncần xử lý các đối số dòng lệnh trong phương thức Main và lưu trữ chúng để sử dụng sau này.Ngoài ra, bạn có thể sử dụng lớp System.Environment, lớp này cung cấp hai thành viên tĩnhtrả về thông tin dòng lệnh: CommandLine và GetCommandLineArgs. • Thuộc tính CommandLine trả về một chuỗi chứa toàn bộ dòng lệnh. Tùy thuộc vào hệ điều hành ứng dụng đang chạy mà thông tin đường dẫn có đứng trước tên ứng dụng hay không. Các hệ điều hành Windows NT 4.0, Windows 2000, và Windows XP không chứa thông tin đường dẫn, trong khi Windows 98 và Windows ME thì lại chứa. • Phương thức GetCommandLineArgs trả về một mảng chuỗi chứa các đối số dòng lệnh. Mảng này có thể được xử lý giống như mảng được truyền cho phương thức Main, tuy nhiên phần tử đầu tiên của mảng này là tên ứng dụng. 42 Chương 1: Phát triển ứng dụng6. Chọn biên dịch một khối mã vào file thực thi Bạn cần chọn một số phần mã nguồn sẽ được biên dịch trong file thực thi. Sử dụng các chỉ thị tiền xử lý #if, #elif, #else, và #endif để chỉ định khối mã nào sẽ được biên dịch trong file thực thi. Sử dụng đặc tính System.Diagnostics. ConditionalAttribute để chỉ định các phương thức mà sẽ chỉ được gọi tùy theo điều kiện. Điều khiển việc chọn các khối mã bằng các chỉ thị #define và #undef trong mã nguồn, hoặc sử dụng đối số /define khi chạy trình biên dịch C#.Nếu muốn ứng dụng của bạn hoạt động khác nhau tùy vào các yếu tố như nền hoặc môitrường mà ứng dụng chạy, bạn có thể kiểm tra điều kiện khi chạy bên trong mã nguồn và kíchhoạt các hoạt động cần thiết. Tuy nhiên, cách này làm mã nguồn lớn lên và ảnh hưởng đếnhiệu năng. Một cách tiếp cận khác là xây dựng nhiều phiên bản của ứng dụng để hỗ trợ cácnền và môi trường khác nhau. Mặc dù cách này khắc phục được các vấn đề về độ lớn của mãnguồn và việc giảm hiệu năng, nhưng nó không phải là giải pháp tốt khi phải giữ mã nguồnkhác nhau cho mỗi phiên bản. Vì vậy, C# cung cấp các tính năng cho phép bạn xây dựng cácphiên bản tùy biến của ứng dụng chỉ từ một mã nguồn.Các chỉ thị tiền xử lý cho phép bạn chỉ định các khối mã sẽ được biên dịch vào file thực thichỉ nếu các ký hiệu cụ thể được định nghĩa lúc biên dịch. Các ký hiệu hoạt động như các“công tắc” on/off, chúng không có giá trị mà chỉ là “đã được định nghĩa” hay “chưa được địnhnghĩa”. Để định nghĩa một ký hiệu, bạn có thể sử dụng chỉ thị #define trong mã nguồn hoặcsử dụng đối số trình biên dịch /define. Ký hiệu được định nghĩa bằng #define có tác dụngđến cuối file định nghĩa nó. Ký hiệu được định nghĩa bằng /define có tác dụng trong tất cảcác file đang được biên dịch. Để bỏ một ký hiệu đã định nghĩa bằng /define, C# cung cấp chỉthị #undef, hữu ích khi bạn muốn bảo đảm một ký hiệu không được định nghĩa trong các filenguồn cụ thể. Các chỉ thị #define và #undef phải nằm ngay đầu file mã nguồn, trên cả các chỉthị using. Các ký hiệu có phân biệt chữ hoa-thường.Trong ví dụ sau, biến platformName được gán giá trị tùy vào các ký hiệu winXP, win2000,winNT, hoặc win98 có được định nghĩa hay không. Phần đầu của mã nguồn định nghĩa các kýhiệu win2000 và released (không được sử dụng trong ví dụ này), và bỏ ký hiệu win98 trongtrường hợp nó được định nghĩa trên dòng lệnh trình biên dịch.#define win2000#define release#undef win98using System;public class ConditionalExample { public static void Main() { ...
Nội dung trích xuất từ tài liệu:
Các giải pháp lập trình CSharp- P5 41 Chương 1: Phát triển ứng dụng • public static int Main(string[] args) {}Khi chạy, đối số args sẽ chứa một chuỗi cho mỗi giá trị được nhập trên dòng lệnh và nằm sautên ứng dụng. Phương thức Main trong ví dụ dưới đây sẽ duyệt qua mỗi đối số dòng lệnh đượctruyền cho nó và hiển thị chúng ra cửa sổ Console:public class CmdLineArgExample { public static void Main(string[] args) { // Duyệt qua các đối số dòng lệnh. foreach (string s in args) { System.Console.WriteLine(s); } }}Khi thực thi CmdLineArgExample với lệnh:CmdLineArgExample one wo three four five sixứng dụng sẽ tạo ra kết xuất như sau:one two threefourfivesixChú ý rằng, khác với C và C++, tên của ứng dụng không nằm trong mảng chứa các đối số.Tất cả ký tự nằm trong dấu nháy kép (“) được xem như một đối số, nhưng dấu nháy đơn ( )chỉ được xem như ký tự bình thường. Nếu muốn sử dụng dấu nháy kép trong đối số, đặt ký tựvạch ngược () trước nó. Tất cả các khoảng trắng đều bị bỏ qua trừ khi chúng nằm trong dấunháy kép.Nếu muốn truy xuất đối số dòng lệnh ở nơi khác (không phải trong phương thức Main), bạncần xử lý các đối số dòng lệnh trong phương thức Main và lưu trữ chúng để sử dụng sau này.Ngoài ra, bạn có thể sử dụng lớp System.Environment, lớp này cung cấp hai thành viên tĩnhtrả về thông tin dòng lệnh: CommandLine và GetCommandLineArgs. • Thuộc tính CommandLine trả về một chuỗi chứa toàn bộ dòng lệnh. Tùy thuộc vào hệ điều hành ứng dụng đang chạy mà thông tin đường dẫn có đứng trước tên ứng dụng hay không. Các hệ điều hành Windows NT 4.0, Windows 2000, và Windows XP không chứa thông tin đường dẫn, trong khi Windows 98 và Windows ME thì lại chứa. • Phương thức GetCommandLineArgs trả về một mảng chuỗi chứa các đối số dòng lệnh. Mảng này có thể được xử lý giống như mảng được truyền cho phương thức Main, tuy nhiên phần tử đầu tiên của mảng này là tên ứng dụng. 42 Chương 1: Phát triển ứng dụng6. Chọn biên dịch một khối mã vào file thực thi Bạn cần chọn một số phần mã nguồn sẽ được biên dịch trong file thực thi. Sử dụng các chỉ thị tiền xử lý #if, #elif, #else, và #endif để chỉ định khối mã nào sẽ được biên dịch trong file thực thi. Sử dụng đặc tính System.Diagnostics. ConditionalAttribute để chỉ định các phương thức mà sẽ chỉ được gọi tùy theo điều kiện. Điều khiển việc chọn các khối mã bằng các chỉ thị #define và #undef trong mã nguồn, hoặc sử dụng đối số /define khi chạy trình biên dịch C#.Nếu muốn ứng dụng của bạn hoạt động khác nhau tùy vào các yếu tố như nền hoặc môitrường mà ứng dụng chạy, bạn có thể kiểm tra điều kiện khi chạy bên trong mã nguồn và kíchhoạt các hoạt động cần thiết. Tuy nhiên, cách này làm mã nguồn lớn lên và ảnh hưởng đếnhiệu năng. Một cách tiếp cận khác là xây dựng nhiều phiên bản của ứng dụng để hỗ trợ cácnền và môi trường khác nhau. Mặc dù cách này khắc phục được các vấn đề về độ lớn của mãnguồn và việc giảm hiệu năng, nhưng nó không phải là giải pháp tốt khi phải giữ mã nguồnkhác nhau cho mỗi phiên bản. Vì vậy, C# cung cấp các tính năng cho phép bạn xây dựng cácphiên bản tùy biến của ứng dụng chỉ từ một mã nguồn.Các chỉ thị tiền xử lý cho phép bạn chỉ định các khối mã sẽ được biên dịch vào file thực thichỉ nếu các ký hiệu cụ thể được định nghĩa lúc biên dịch. Các ký hiệu hoạt động như các“công tắc” on/off, chúng không có giá trị mà chỉ là “đã được định nghĩa” hay “chưa được địnhnghĩa”. Để định nghĩa một ký hiệu, bạn có thể sử dụng chỉ thị #define trong mã nguồn hoặcsử dụng đối số trình biên dịch /define. Ký hiệu được định nghĩa bằng #define có tác dụngđến cuối file định nghĩa nó. Ký hiệu được định nghĩa bằng /define có tác dụng trong tất cảcác file đang được biên dịch. Để bỏ một ký hiệu đã định nghĩa bằng /define, C# cung cấp chỉthị #undef, hữu ích khi bạn muốn bảo đảm một ký hiệu không được định nghĩa trong các filenguồn cụ thể. Các chỉ thị #define và #undef phải nằm ngay đầu file mã nguồn, trên cả các chỉthị using. Các ký hiệu có phân biệt chữ hoa-thường.Trong ví dụ sau, biến platformName được gán giá trị tùy vào các ký hiệu winXP, win2000,winNT, hoặc win98 có được định nghĩa hay không. Phần đầu của mã nguồn định nghĩa các kýhiệu win2000 và released (không được sử dụng trong ví dụ này), và bỏ ký hiệu win98 trongtrường hợp nó được định nghĩa trên dòng lệnh trình biên dịch.#define win2000#define release#undef win98using System;public class ConditionalExample { public static void Main() { ...
Tìm kiếm theo từ khóa liên quan:
kinh nghiệm lập trình CSharp mẹo lập trình ngôn ngữ lập trình C giáo trình lập trình CSharp lập trình java lập trình căn bản CSharpGợi ý tài liệu liên quan:
-
Thủ thuật giúp giải phóng dung lượng ổ cứng
4 trang 208 0 0 -
101 trang 198 1 0
-
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 194 0 0 -
Tìm hiểu về ngôn ngữ lập trình C: Phần 1 - Quách Tuấn Ngọc
211 trang 148 0 0 -
161 trang 129 1 0
-
142 trang 128 0 0
-
Giáo trình Vi điều khiển PIC: Phần 1
119 trang 116 0 0 -
Bài giảng Phương pháp lập trình: Chương 9 - GV. Từ Thị Xuân Hiền
36 trang 109 0 0 -
Excel add in development in c and c phần 9
0 trang 104 0 0 -
78 trang 99 0 0