Ngônngữ C# 2.1 Giới thiệu ngôn ngữ C# Ngônngữ C# khá đơn giản, chỉ khoảng 80 từ khóa và hơn mười mấy kiểu dữ liệu được xây dựng sẵn. Tuy nhiên ngônngữ C# có ý nghĩa cao khi nó thực thi những khái niệm lập trình hiện đại. C# bao gồm tất cả những hỗ trợ cho cấu trúc, thành phần, lập trình hướng đối tượng. Những tính chất đó hiện diện trong ngôn ngữ lập trình hiện đại. Và ngônngữ C# hội tụ những điều kiện như vậy, hơn nữa nó được xây dựng trên nền tảng của hai ngônngữ mạnh nhất là C++ và Java. Ngônngữ C# được phát triển bởi đội ngũ kỹ sư của Microsoft, trong đó người dẫn đầu là Anders Hejlsberg và Scott Wiltamuth. Cả hai người nay đều là những người nổi tiếng trong đó Anders Hejlsberg được biết đến là tác giả của Turbo Pascal, một ngôn ngữ lập trình PC phổ biến. Và ông đứng đầu nhóm thiết kế Borland Delphi. Một trong những thành công đầu tiên của việc xây dựng môi trường phát triển thích hợp (IDE) cho lập trình client/server. 2.2. Đặc điểm ngônngữ C#. Trọng tâm của ngônngữ hướng đối tượng là lớp. Lớp định nghĩa kiểu dữ liệu mới, cho phép mở rộng ngônngữ theo hướng cần giải quyết. C# có những từ khóa dành cho việc khai báo lớp, phương thức, thuộc tính(property). C# hỗ trợ đầy đủ khái niệm trong lập trình hướng đối tượng: đóng gói, kế thừa, đa hình Trong C# mọi thứ liên quan đến khai báo lớp đều được tìm thấy trong phần khai báo của nó. Định nghĩa một lớp trong ngônngữ C# không đòi hỏi phải chia ra tập tin header và tập tin nguồn giống như trong ngônngữ C#. Hơn nữa ngônngữ C# hỗ trợ kiểu XML, cho phép chèn các tag XML để phát sinh tự đông các document cho lớp. C# hỗ trợ khái niệm giao diện interfaces (tương tự Java). Một lớp chỉ có thể kế thừa duy nhất một lớp cha nhưng có thể cài đặt nhiều giao diện. C# có kiểu cấu trúc, struct (không giống C++). Cấu trúc là kiểu hạng nhẹ và bị giới hạn. Cấu trúc không thể thừa kế lớp hay được kế thừa nhưng có thể cài đặt giao diện. C# cung cấp những đặc trưng lập trình hướng đối tượng như property, sự kiện và dẫn hướng khai báo (được gọi là attribute). Lập trình hướng đối tượng được hỗ trợ bởi CLR thông qua siêu dữ liệu (metadata). Siêu dữ liệu mô tả các lớp bao gồm các phương thức và thuộc tính, các thông tin bảo mật,… Assembly là một tập hợp các tập tin theo cách nhìn của lậpn trình viên là các thư viện liên kết động (DLL) hay tập tin (EXE). Trong .Net một assembly là một đơn vị của việc tái sử dụng xác định phiên bản, bảo mật và phân phối. CLR cung cấp một số các lớp để thao tác với assembly. C# cũng cho truy cập trực tiếp bộ nhớ dùng con trỏ kiểu C++, nhưng vùng mã đó được xem như không an toàn. CLR sẽ không thục thi việc thu dọn rác tự động các đối tượng được tham chiếu bởi các con trỏ cho đến khi lập trình viên tự giải phóng. 2.3 Các ưu điểm ngônngữ C#. - C# là ngônngữ đơn giản. Ngônngữ C# là ngônngữ đơn giản vì nó dựa trên nền tảng C và C++. C# khá giống về diện mạo, cú pháp biểu thức, toán tử và những chức năng khác được lấy trực tiếp từ ngônngữC và C++ nhưng nó đã được cải tiến làm cho ngônngữ đơn giản hơn. - C# là ngônngữ hiện đại. Ngônngữ C# chứa các đặc tính sau: xử lý ngoại lệ, thu gom bộ nhớ tự động, những kiểu dữ liệu mở rộng và bảo mật mã nguồn. - C# là ngônngữ hướng đối tượng. Những đặc điểm chính của ngônngữ hướng đối tượng (Object –oriented language) là sự đóng gói (encapsulation), sự kế thừa (inheritance), và đa hình (polymorphism). C# hỗ trợ tất cả các đặc tính trên. - C# là ngôn ngưc mạnh và cũng mềm dẻo, Ngônngữ C# chúng ta chỉ bị giới hạn bởi chính bản than hay là trí tưởng tượng của chúng ta, Ngônngữ này không đặt những ràng buộc lên những việc có thể làm. C# được sử dụng cho nhiều các dự án khác nhau như là tạo ứng dụng xử lý văn bản, ứng dụng đồ họa, bàn tính, thạm chí những biên dịch cho các ngônngữ khác. - C# ngônngữ hướng module. Mã nguồn C# có thể được viết trong những phần được gọi là những lớp, những lớp này chứa các phương thức thành viên của nó. Những lớp và phương thức có thể sử dụng lại trong ứng dụng hay các chương trình khác. Bằng cách truyền các mẫu thông tin đến những lớp hay phương thức chúng ta có thể tạo ra những mã nguồn dùng lại có hiệu quả. . tảng C và C+ +. C# khá giống về diện mạo, c pháp biểu th c, toán tử và những ch c năng kh c đư c lấy tr c tiếp từ ngôn ngữ C và C+ + nhưng nó đã đư c cải. (inheritance), và đa hình (polymorphism). C# hỗ trợ tất c c c đ c tính trên. - C# là ngôn ng c mạnh và c ng mềm dẻo, Ngôn ngữ C# chúng ta chỉ bị giới hạn bởi chính