Toán tử as

Một phần của tài liệu Tài Liệu Học Ngôn Ngữ Lập Trình C#_p5 pptx (Trang 31 - 32)

Toán t as

Toán tử as kết hợp toán tử is và phép gán bằng cách đầu tiên kiểm tra hợp lệ phép gán (kiểm tra toán tử is trả về true) rồi sau đó phép gán được thực hiện. Nếu phép gán không hợp lệ (khi phép gán trảề giá trị false), thì toán tử as trả về giá trị null.

Ghi chú: Từ khóa null thể hiện một tham chiếu không tham chiếu đến đâu cả (null reference). Đối tượng có giá trị null tức là không tham chiếu đến bất kỳđối tượng nào. Sử dụng toán tử asđể loại bỏ việc thực hiện các xử lý ngoại lệ. Đồng thời cũng né tránh việc thực hiện kiểm tra dư thừa hai lần. Do vậy, việc sử dụng tối ưu của phép gán cho giao diện là sử dụng as.

Cú pháp sử dụng toán tử as như sau: <biểu thức> as <kiểu dữ liệu>

Đoạn chương trình sau thay thế việc sử dụng toán tử is bằng toán tử as và sau đó thực hiện việc kiểm tra xem giao diện được gán có null hay không:

static void Main() {

Document doc = new Document(“Test Document”); IStorable isDoc = doc as IStorable;

if ( isDoc != null ) { isDoc.Read(); } else {

Console.WriteLine(“IStorable not supported”); }

ICompressible icDoc = doc as ICompressible; if ( icDoc != null) { icDoc.Compress(); } else {

Console.WriteLine(“Compressible not supported”); }

}

Ta có thể so sánh đoạn mã IL sau với đoạn mã IL sử dụng toán tử is trước sẽ thấy đoạn mã sau có nhiều hiệu quả hơn: IL_0023: isinst IL_0028: stloc.2 IL_0029: ldloc.2 IL_002a: brfalse.s ICompressible IL_0034 IL_002c: ldloc.2

IL_002d: callvirt instance void ICompressible::Compress()

Ghi chú: Nếu mục đích của chúng ta là kiểm tra một đối tượng có hỗ trợ một giao diện và sau đó là thực hiện việc gán cho một giao diện, thì cách tốt nhất là sử dụng toán tử as là hiệu quả nhất. Tuy nhiên, nếu chúng ta chỉ muốn kiểm tra kiểu dữ liệu và không thực hiện phép gán ngay lúc đó. Có lẽ chúng ta chỉ muốn thực hiện việc kiểm tra nhưng không thực hiện việc gán, đơn giản là chúng ta muốn thêm nó vào danh sách nếu chúng thực sự là một giao diện. Trong trường hợp này, sử dụng toán tử is là cách lựa chọn tốt nhất.

Một phần của tài liệu Tài Liệu Học Ngôn Ngữ Lập Trình C#_p5 pptx (Trang 31 - 32)