Sự phát triển của ngôn ngữ lập trình C# (Part 1)

5 min read

C# là gì?

C# (C sharp) là một ngôn ngữ lập trình hướng đối tượng mạnh mẽ được phát triển bởi Microsoft vào năm 2000. C# được thiết kế để làm việc với .NET framework và cung cấp một cú pháp dễ đọc, dễ hiểu, tương tự như ngôn ngữ Java và C++ nhưng với nhiều cải tiến và tính năng mới.

C# đã trải qua nhiều phiên bản, mỗi phiên bản đều mang lại các cải tiến và tính năng mới.

C# 1.0

Được phát hành vào tháng 1 năm 2002, cùng với phiên bản Visual Studio.NET 2002

Lúc này, C# trông rất giống JAVA, mục tiêu của Microsoft lúc này là “một ngôn ngữ lập trình hướng đối tượng, hiện đại, đa mục đích và đơn giản”. Có vẻ như mục tiêu này đã được hoàn thành một cách xuất sắc. Các tính năng chính trong phiên bản này bao gồm:

  • Classes
  • Structs
  • Interfaces
  • Events
  • Properties
  • Delegates
  • Operators and expressions
  • Statements
  • Attributes

C# 1.2

Được phát hành tháng 4 năm 2003 cùng với Visual Studio.NET 2003 với một số cải tiến nhỏ

C# 2.0

Phát hành tháng 11 năm 2005 cùng với Visual Studio 2005.

C# lúc này đã thay đổi một cách nhanh chóng cùng với sự xuất hiện của Generic. Với Generic, các kiểu và phương thức có thể hoạt động trên một kiểu tùy ý trong khi vẫn giữ được tính type-safe. Ví dụ, có một List<T> cho phép bạn có List<string> hoặc List<int> và thực hiện các thao tác an toàn kiểu trên các chuỗi hoặc số nguyên khi lặp qua chúng. Sử dụng Generictốt hơn là tạo ra một kiểu ListInt kế thừa từ ArrayList hoặc ép kiểu từ Object cho mỗi thao tác.

C# phiên bản 2.0 cũng mang đến iterators. Nói một cách đơn giản, iterator cho phép bạn duyệt qua tất cả các mục trong một List (hoặc các kiểu Enumerable khác) bằng một vòng lặp foreach. Có iterators như một phần chính của ngôn ngữ đã cải thiện đáng kể khả năng đọc hiểu ngôn ngữ.

Những thành phần chính trong phiên bản:

Ngoài ra còn một số tính năng như:

  • Getter/setter separate accessibility
  • Method group conversions (delegates)
  • Static classes
  • Delegate inference

C# 3.0

C# phiên bản 3.0 ra mắt vào cuối năm 2007, cùng với Visual Studio 2008, mặc dù toàn bộ tính năng ngôn ngữ sẽ thực sự đến với .NET Framework phiên bản 3.5. Phiên bản này đánh dấu một sự thay đổi lớn trong sự phát triển của C#. Nó đã khẳng định C# là một ngôn ngữ lập trình đáng gờm. Hãy cùng xem xét một số tính năng chính trong phiên bản này:

Tất cả những tính năng trên đều được kết hợp lại một cách chiến lược. Tính năng “sát thủ” của phiên bản C# này là query expression, hay còn được gọi là Language-Integrated Query (LINQ).

LINQ được xây dựng dựa trên sự kết hợp của expression tree, lambda expressionAnonymous Type. Đây là một khái niệm mang tính cách mạng, C# 3.0 bắt đầu đặt nền tảng để biến C# trở thành một ngôn ngữ lai giữa lập trình hướng đối tượng và lập trình chức năng.

Cụ thể, bạn giờ đây có thể viết các truy vấn kiểu SQL, khai báo để thực hiện các thao tác trên các tập hợp, ngoài những thứ khác. Thay vì phải viết một vòng lặp for để tính trung bình của một danh sách số nguyên, bạn giờ đây có thể làm điều đó đơn giản như list.Average(). Sự kết hợp giữa các query expression và các Extension method đã khiến cho object list trở nên thông minh hơn nhiều.

C# 4.0

C# phiên bản 4.0, được phát hành cùng với Visual Studio 2010, đã giới thiệu một số tính năng mới thú vị:

Embedded interop types đã giảm bớt sự phiền toái trong việc triển khai các COM interop assemblies cho ứng dụng của bạn. Generic covariance and contravariance cung cấp cho bạn nhiều khả năng hơn trong việc sử dụng generic, nhưng chúng hơi học thuật và có lẽ được đánh giá cao nhất bởi những tác giả framework và thư viện. Named/optional arguments cho phép bạn loại bỏ nhiều method overload và cung cấp sự tiện lợi. Nhưng không có tính năng nào trong số này là thay đổi hoàn toàn.

Kiểu dynamic cho biết việc sử dụng biến và truy cập vào các thành viên của nó sẽ bỏ qua kiểm tra kiểu tại thời điểm biên dịch. Thay vào đó, các thao tác này sẽ được giải quyết tại thời gian chạy. Kiểu dynamic đơn giản hóa việc truy cập vào các API COM như Office Automation API, các API động như IronPython libraries, và vào Document Object Model (DOM) của HTML.

C# 5.0

C# phiên bản 5.0, được phát hành cùng với Visual Studio 2012, là một phiên bản tập trung của ngôn ngữ này. Hầu hết nỗ lực cho phiên bản này đều được dành cho một khái niệm ngôn ngữ mới đột phá khác: mô hình asyncawait cho lập trình bất đồng bộ. Dưới đây là danh sách các tính năng chính:

Caller info attribute cho phép bạn dễ dàng lấy thông tin về ngữ cảnh mà bạn đang chạy. Nó có nhiều ứng dụng trong việc logging.

Nhưng asyncawait mới thực sự là những ngôi sao của bản phát hành này. Khi những tính năng này ra mắt vào năm 2012, C# đã thay đổi game lần nữa bằng cách tích hợp bất đồng bộ vào ngôn ngữ như một thành phần cấp một.

Avatar photo

BigQuery vs Google Cloud SQL – P2

Ở bài viết trước tôi đã tổng quan về khái niệm, các tính năng chính và so sánh sự khác biệt chính của GCP...
Avatar photo Toai Nguyen Cong
11 min read

BigQuery vs Google Cloud SQL – P1

Trong bối cảnh điện toán đám mây không ngừng phát triển, các doanh nghiệp bị ngập trong các lựa chọn khi nói đến việc...
Avatar photo Toai Nguyen Cong
5 min read

Leave a Reply

Your email address will not be published. Required fields are marked *