tailieunhanh - Lập trình Windows - Lập Trình C #- Lập Trình C Shap - Chương 5
Tham khảo tài liệu lập trình windows - lập trình c #- lập trình c shap - chương 5, công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | Generics Nội dung An toàn kiểu lúc biên dịch (compile time type safety) Overloaded methods Constraints Generic Classes and Structs Generic Interfaces Generic Methods Generic Delegates Generic Type Conversion Nullable Types Type Safety (định kiểu an toàn) Các ngôn ngữ .net (C#, C++, VB) đều là những ngôn ngữ được định kiểu mạnh (strong type) phải khai báo biến rõ ràng trước khi sử dụng. Nhưng các kiểu tập hợp (collection) lại không được hỗ trợ kiểu an toàn( Type safety). Ví dụ kiểu ArrayList, chúng cho phép ta lưu trữ tất cả các object bên trong chúng. Page 1154 Deitel Ví dụ về an toàn kiểu namespace TestApp { class Test { static void Main(string[] args) { ArrayList list = new ArrayList(); (3); (4); //(); int total = 0; foreach(int val in list) { total = total + val; } ( "Total is {0}", total); } } } Type Safety of Generics Do ArrayList luôn cast mọi thứ về lớp cơ sở Object, nên không có cách nào để kiểm tra kiểu ở thời gian biên dịch. Dùng Generics sẽ loại trừ việc upcast thành Object và làm cho compiler có thể kiểm tra kiểu được. Nhờ đó có thể tạo collection an toàn kiểu ngay thời gian biên dịch Compile-time type safety Phát hiện sai kiểu dữ liệu ở thời điểm biên dịch Ví dụ 1: nếu Stack được dùng để lưu trữ giá trị int , nếu push vào 1 string thì sẽ gây lỗi (compile-time error). Ví dụ 2: phương thức Sort chỉ có thể sắp xếp các phần tử cùng kiểu dữ liệu. Để bảo đảm compile-time type safety, phải tạo các version kiểu khác nhau cho lớp Stack cũng như phương thức Sort nhiều bản copy cho cùng 1 mã. Page 1154 Deitel Generics Generics là 1 tính chất mới của C# Generic methods enable you to specify, with a | Generics Nội dung An toàn kiểu lúc biên dịch (compile time type safety) Overloaded methods Constraints Generic Classes and Structs Generic Interfaces Generic Methods Generic Delegates Generic Type Conversion Nullable Types Type Safety (định kiểu an toàn) Các ngôn ngữ .net (C#, C++, VB) đều là những ngôn ngữ được định kiểu mạnh (strong type) phải khai báo biến rõ ràng trước khi sử dụng. Nhưng các kiểu tập hợp (collection) lại không được hỗ trợ kiểu an toàn( Type safety). Ví dụ kiểu ArrayList, chúng cho phép ta lưu trữ tất cả các object bên trong chúng. Page 1154 Deitel Ví dụ về an toàn kiểu namespace TestApp { class Test { static void Main(string[] args) { ArrayList list = new ArrayList(); (3); (4); //(); int total = 0; foreach(int val in list) { total = total + val; }
đang nạp các trang xem trước