C thăng
Bách khoa toàn thư mở Wikipedia
- Bài này có tựa không chính xác vì các hạn chế kĩ thuật. Tựa đúng là C#.
- Bài này viết về ngôn ngữ lập trình C#. Nếu bạn tìm thông tin về nốt nhạc C♯ hãy xem phần nốt nhạc.
C# là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft, là phần khởi đầu cho kế hoạch .NET của họ. Tên của ngôn ngữ bao gồm ký tự thăng theo Microsoft nhưng theo ECMA là C#, chỉ bao gồm dấu số thường. Microsoft phát triển C# dựa trên C++ và Java. C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java.
Mục lục |
[sửa] Đặc điểm ngôn ngữ
C#, theo một hướng nào đó, là ngôn ngữ lập trình phản ánh trực tiếp nhất đến .NET Framework mà tất cả các chương trình .NET chạy, và nó phụ thuộc mạnh mẽ vào Framework này. Các loại dữ liệu cơ sở là những đối tượng, hay được gọi là garbage-collected, và nhiều kiểu trừu tượng khác chẳng hạn như class, delegate, interface, exception, v.v, phản ánh rõ ràng những đặc trưng của .NET runtime.
So sánh với C và C++, ngôn ngữ này bị giới hạn và được nâng cao ở một vài đặc điểm nào đó, nhưng không bao gồm các giới hạn sau đây:
- Các con trỏ chỉ có thể được sử dụng trong chế độ không an toàn. Hầu hết các đối tượng được tham chiếu an toàn, và các phép tính đều được kiểm tra tràn bộ đệm. Các con trỏ chỉ được sử dụng để gọi các loại kiểu giá trị; còn những đối tượng thuộc bộ thu rác (garbage-collector) thì chỉ được gọi bằng cách tham chiếu.
- Các đối tượng không thể được giải phóng tường minh.
- Chỉ có đơn kế thừa, nhưng có thể cài đặt nhiều
interface
trừu tượng (abstract interfaces). Chức năng này làm đơn giản hóa sự thực thi của thời gian thực thi. - C# thì an-toàn-kiểu (typesafe) hơn C++.
- Cú pháp khai báo mảng khác nhau("
int[] a = new int[5]" thay vì "int a[5]
"). - Kiểu thứ tự được thay thế bằng tên miền không gian (namespace).
- C# không có tiêu bản.
- Có thêm Properties, các phương pháp có thể gọi các Properties để truy cập dữ liệu.
- Có reflection.
[sửa] C# 2.0, các đặc điểm mới
[sửa] C# 3.0, các đặc điểm mới
Trong C# 3.0, sẽ có vài bổ sung cơ bản sau:
- Các từ khóa "select, from, where" cho phép truy vấn từ một tập, từ SQL, v.v. (hay còn được gọi là LINQ - viết tắt của Language INtergrated Query)
- Khởi tạo đối tượng:
Customer c = new Customer(); c.Name="James";
trở thànhCustomer c = new Customer { Name="James" };
- Các biểu thức lambda:
listOfFoo.Where(delegate(Foo x) { return x.size>10;})
trở thànhlistOfFoo.Where(x => x.size>10);
var x = "hello";
có thể hoán đổi vớistring x = "hello";
- Các phương thức mở rộng
Xem thêm về C# 3.0 tại trang web của MSDN.
[sửa] .NET Framework
.NET Framework là một thư viện class có thể được sử dụng với một ngôn ngữ .NET để thực thi các việc từ thao tác chuỗi cho đến phát sinh ra các trang web động (ASP.NET), phân tích XML và reflection. .NET Framework được tổ chức thành tập hợp các namespace, nhóm các class có cùng chức năng lại với nhau, thí dụ như System.Drawing
cho đồ hoạ, System.Collections
cho cấu trúc dữ liệu và System.Windows.Forms
cho hệ thống Windows Forms.
Cấp cao hơn nữa được cung cấp bởi khái niệm này là assembly. Một assembly là một file hoặc nhiều file được liên kết với nhau (thông qua file al.exe), chứa đựng nhiều namespace và object. Các chương trình cần các các lớp để thực thi một chức năng đặc biệt nào đó sẽ tham chiếu các assembly chẳng hạn như System.Drawing.dll và System.Windows.Forms.dll cũng như các core library (lưu trong file mscorlib.dll).
[sửa] Thí dụ kinh điển Hello World
Dưới đây là một chương trình C# rất đơn giản, với thí dụ "Hello World" kinh điển:
public class ExampleClass { public static void Main() { System.Console.WriteLine("Hello world! Xin chao the gioi"); } }
Chương trình này sẽ viết chuỗi Hello World! ra màn hình console. Mỗi dòng code có một mục đích đặc biệt, chi tiết như sau:
public class ExampleClass
Đây là định nghĩa lớp. public, nghĩa là các đối tượng trong project khác có thể tự do sử dụng lớp này. Tất cả thông tin trong dấu ngoặc móc mô tả về lớp này.
public static void Main()
Đây là điểm vào của chương trình. Nó có thể được gọi từ đoạn code khác với cú pháp ExampleClass.Main()
. (The public static void portion is a subject for a slightly more advanced discussion.)
System.Console.WriteLine("Hello world!");
This line performs the actual task of writing the output. Console is a system object, representing a command-line console where a program can input and output text. The program calls the Console method WriteLine, which causes the string passed to it to be displayed on the console.