CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 42

42
Chương 1: Phát triển ứng dụng

6.

6.

Ch n biên d ch m t kh i mã vào file th c thi

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

#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ôi
trườ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ích
hoạ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 đến
hiệ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ác
nề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ồn
khá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ác
phiê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 thi
chỉ 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 định
nghĩa”. Để định nghĩa một ký hiệu, bạn có thể sử dụng chỉ thị

#define

trong mã nguồn hoặc

sử 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 file

nguồn cụ thể. Các chỉ thị

#define

#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

released

(không được sử dụng trong ví dụ này), và bỏ ký hiệu

win98

trong

trườ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 win98

using System;

public class ConditionalExample {

public static void Main() {

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.