C# 4 – Tìm hiểu về Lazy Initialization

lazy-cat‘Lazy Initialization’ là một thuật ngữ quen thuộc nói về phương pháp trì hoãn việc khởi tạo (hoặc nạp) dữ liệu cho đến khi chúng thực sự cần đến. Việc này rất hữu ích khi dữ liệu rất lớn và bạn không muốn người dùng tốn một tách café, ngồi chờ đợi những thứ chưa được sử dụng nhưng lại được nạp lên một cách … ‘xa xỉ’.

Tiếp tục đọc

Advertisements

.NET 4 – System.Tuple vs Anonymous Type

3d tuple.Net 4.0 cho ra mắt một nhóm class mới với cùng tên là Tuple. Mục đích của các class là tạo một đối tượng lưu trữ cho các dữ liệu phức tạp, và nhờ đó người dùng khỏi cần phải tạo thêm một class mới. Nhưng từ .Net 3, bạn đã có thể sử dụng anonymous type để làm điều này với cú pháp đơn giản hơn. Vậy thì System.Tuple phải chăng là dư thừa?

Tiếp tục đọc

DLR– Dynamic Programming: Một wrapper của string với DynamicObject và reflection

Như đã giới thiệu trong bài “ExpandoObject, DynamicObject và Dynamic Method Bag“, để minh họa rõ ràng hơn cho cách sử dụng DynamicObject, tôi đã tạo một wrapper của lớp string với tên gọi Y2String trong C#. Lớp này sẽ override các phương thức cần thiết của DynamicObject để sử dụng được các phương thức của string và bổ sung thêm một số tính năng khác.

Tiếp tục đọc

DLR – Dynamic Programming: ExpandoObject, DynamicObject và Dynamic Method Bags

Trong bài giới thiệu về dynamic keyword, bạn đã thấy rằng dynamic programming giúp cho việc lập trình trở nên dễ dàng và tiện lợi hơn. Tuy nhiên không chỉ đơn giản là tự động xác định các kiểu dữ liệu, dynamic programming cho phép bạn tạo các thành viên của đối tượng và sử dụng chúng trong quá trình runtime.

Tiếp tục đọc

DLR – Dynamic Programming: DLR và dynamic keyword trong C#

Phiên bản C# 4.0 ra đời cung cấp một kĩ thuật lập trình mới mà nhiều ngôn ngữ lập trình khác (như PHP, javascript, Python, Ruby,…) đã sử dụng là Dynamic programming, thêm là một từ khóa mới: “dynamic”. Có thể thấy, .Net không ngừng phát triển để thêm vào những khái niệm và kĩ thuật lập trình mới cho các ngôn ngữ của mình. Vậy Dynamic programming là gì và từ khóa dynamic sử dụng ra sao?

Tiếp tục đọc