C# đã tiến hóa như thế nào

C# thường được release với .NET. C# là ngôn ngữ lập trình, còn .NET là 1 thư viện/framework (Ta có VB.NET, F#, ASP.NET...

Trong phạm vi bài viết, tôi chỉ đề cập về những thay đổi trong bản thân ngôn ngữ lập trình C#, không giới thiệu những công nghệ mới qua từng phiên bản .NET như EF, WIF,….

1. C# 2 - Giải quyết vấn đề từ C# 1

a. Kiểu dữ liệu Generic: Nói đơn giản, nó là kiểu <T> mà các bạn hay dùng ấy. Với generic, code trở nên gọn gàng sáng sủa hơn, ta cũng có thể tái sử dụng function cho nhiều kiểu dữ liệu khác nhau.

b. Kiểu dữ liệu nullable: Trong nhiều trường hợp, ta cần thể hiện giá trị null với kiểu dữ liệu tham trị như int, double v...v. Với 1 số ngôn ngữ khác, ta phải chuyển nó sang dạng tham chiếu như  Interger, Double. Với C# 2, ta có thể dùng kiểu nullable, khai báo bằng cách: Nullable<int> hoặc int?. Rất ngắn gọn và đơn giản.

c. Delegate: Đã có thể sử dụng anonymous delegate, viết ngắn học hơn so với C# 1 d. Partial class: Một partial class có thể được khai báo trong nhiều file khác nhau. Partial class được áp dụng trong Winform, class tự sinh từ Entity Framework, giúp ta dễ dàng thêm chức năng vào form, class mà không cần động tới những class được C# tự tạo ra.

d. Iterator (IEnumerable): Để duyệt từng phần tử một mảng, ta có thể dùng hàm foreach. Iterator là một cực hình khi implement trong C# 1. Với từ khóa yield, việc tạo Iterator trong C# đã trở nên rất dễ ràng.


2. C# 3 - Cải tiến trong data access, LINQ chào đời

a. Một số thay đổi nhỏ trong compiler: Một số thay đổi nho nhỏ được C# thêm vào, giúp việc code trở nên nhẹ nhàng hơn, bạn có thể xem code của các thay đổi này trong 2 phần đầu của series C# hay ho.

  • Tự implement getter, setter thông qua properties
  • Khởi tại object và array một cách dễ dàng
  • Khai báo bằng biến var
  • Anonymous class

b. Lambda expression: Lambda expression giúp việc viết delegate trở nên dễ dàng hơn rất nhiều. Mình đã viết 1 bài khá kĩ về thứ này, bạn có thể xem lại nếu quên.

c. Extension method: Bạn đọc lại phần mình viết về extension method ở bài viết trong link nhé.

d. Query và LINQ: Đây là phiên bản C# đầu tiên LINQ ra đời, đã làm võ lâm dậy sóng, giang hồ chấn động. Những cải tiến như var, anonymous class, lamda expression, extension method đều là nền tảng để xây dựng LINQ.

e. Ứng dụng khác của LINQ: Ban đầu, LINQ được dùng để filter, sort v...v các object trong bộ nhớ. Nhờ sự trợ giúp của expression tree, LINQ đã có 1 số ứng dụng khác như: LINQ to SQL (Dịch lambda expression thành SQL, query trực tiếp dưới database), LINQ to XML, Parellel LINQ.


3. C# 4 - Thay đổi nho nhỏ

a. Cải tiến nhỏ giúp code ngắn gọn hơn: Thêm named arguments  và optional parameters

b. Lập trình với dynamic: Đây là thay đổi lớn nhất và đáng chú ý nhất trong C#. Với dynamic, giờ đây ta có thể làm việc với các object từ những ngôn ngữ dynamic như Python, Ruby, Javascript, ... Nghe có vẻ hoành tráng nhưng mình thấy dynamic ít được xài trong cái project thật, không hiểu vì sao.

4. C# 5 - Giảm thiểu đau đầu khi code bất đồng bộ

Điểm nhấn lớn nhất của phiên bản C# 5 này chính là 2 từ khóa async và await. Nhiều function trong C# đã được hỗ trợ call async và await. 

Theo dõi http://laptrinhtot.com để biết thêm các bài viết mới nhất về lập trình C# nhé!

Tags: