Cấu trúc là một kiểu giá trị, được sử dụng để đóng gói tập hợp các đặc tính liên quan như thuộc tính và phương thức. Cấu trúc giúp bạn tổ chức dữ liệu khoa học hơn, mã được trong sáng dễ hiểu hơn, và cải tiến tốc độ chương trình và bộ nhớ sử dụng.
Nếu có không nhiều thành viên, hay chỉ có thuộc tính trong cấu trúc, và không kế thừa hay đa hình, bạn nên sử dụng kiểu cấu trúc thay cho kiểu lớp
Cấu trúc là kiểu giá trị, trong khi lớp là kiểu tham chiếu. Cấu trúc không có hàm hủy, nhưng lớp có thể có hàm hủy. Một điểm khác nhau nữa giữa cấu trúc và lớp là cấu trúc không thể kế thừa, nhưng có thể cài đặt giao tiếp như lớp. Vì vậy, các thành viên của cấu trúc không thể khai báo protected
Cấu trúc cũng có phương thức khởi tạo, nhưng cấu trúc không thể định nghĩa một phương thức khởi tạo mà không có tham đối. Cấu trúc định nghĩa các phương thức khởi tạo với các tham đối chính xác như tất cả các biến thành viên
Cú pháp khai báo cấu trúc tương tự lớp:
struct Rectangle
{
private int m_width;
public int Width
{
get {
return m_width;
}
set
{
m_width = value;
}
}
private int m_height;
public int Height
{
get
{
return m_height;
}
set
{
m_height = value;
}
}
}
using System;
class StructExample
{
static void Main()
{
Rectangle rect1 = new Rectangle();
rect1.Width = 1;
rect1.Height = 3;
//Hay có thể viết
/*Rectangle rect11 = new Rectangle
{
Width = 1,
Height = 3
};*/
Console.WriteLine("rect1: {0}:{1}", rect1.Width, rect1.Height);
Console.ReadKey();
}
}
Giống lớp, phương thức khởi tạo mặc định khởi tạo tất cả các thuộc tính về giá trị rỗng, nguyên là 0, thực là 0.0, boolean là false.
struct Rectangle
{
private int m_width;
public int Width
{
get
{
return m_width;
}
set
{
m_width = value;
}
}
private int m_height;
public int Height
{
get
{
return m_height;
}
set
{
m_height = value;
}
}
public Rectangle(int width, int height)
{
m_width = width;
m_height = height;
}
public Rectangle Add(Rectangle rect)
{
Rectangle newRect = new Rectangle();
newRect.Width = Width + rect.Width;
newRect.Height = Height + rect.Height;
return newRect;
}
}
using System;
class StructExample
{
static void Main()
{
Rectangle rect1 = new Rectangle();
rect1.Width = 1;
rect1.Height = 3;
Console.WriteLine("rect1: {0}:{1}", rect1.Width, rect1.Height);
Rectangle rect2 = new Rectangle(5, 7);
Console.WriteLine("rect2: {0}:{1}", rect2.Width, rect2.Height);
Rectangle rect3 = rect1.Add(rect2);
Console.WriteLine("rect3: {0}:{1}", rect3.Width, rect3.Height);
Console.ReadKey();
}
}
» Tin mới nhất:
» Các tin khác: