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 Generic
tố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:
- Generics
- Partial types
- Anonymous methods
- Nullable value types
- Iterators
- Covariance and contravariance
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:
- Auto-implemented properties
- Anonymous types
- Query expressions
- Lambda expressions
- Expression trees
- Extension methods
- Implicitly typed local variables
- Partial methods
- Object and collection initializers
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 expression
và Anonymous 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 async
và await
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 async
và await
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.