Cấu trúc phần đầu
Số trang: 14
Loại file: pdf
Dung lượng: 182.18 KB
Lượt xem: 5
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Định nghĩa một cấu trúc Tạo cấu trúc · · · Cấu trúc là một kiểu giá trị Gọi bộ khởi dựng mặc định Tạo cấu trúc không gọi new
Nội dung trích xuất từ tài liệu:
Cấu trúc phần đầuCẤU TRÚC · Định nghĩa một cấu trúc · Tạo cấu trúc · Cấu trúc là một kiểu giá trị · Gọi bộ khởi dựng mặc định · Tạo cấu trúc không gọi new · Câu hỏi & bài tậpCấu trúc là kiểu dữ liệu đơn giản do người dùng định nghĩa, kích thước nhỏ dùng đểthay thế cho lớp. Những cấu trúc thì tương tự như lớp cũng chứa các phương thức,những thuộc tính, các trường, các toán tử, các kiểu dữ liệu lồng bên trong và bộ chỉ mục(indexer).Có một số sự khác nhau quan trọng giữa những lớp và cấu trúc. Ví dụ, cấu trúc thìkhông hỗtrợ kế thừa và bộ hủy giống như kiểu lớp. Một điều quan trọng nhất là trong khi lớp làkiểudữ liệu tham chiếu, thì cấu trúc là kiểu dữ lịêu giá trị (Chương 3 đã thảo luận về kiểudữ liệu tham chiếu và kiểu dữ liệu giá trị). Do đó cấu trúc thường dùng để thể hiểncác đối tượng không đòi hỏi một ngữ nghĩa tham chiếu, hay một lớp nhỏ mà khi đặtvào trong stack thì có lợi hơn là đặt trong bộ nhớ heap.Một sự nhận xét được rút ra là chúng ta chỉ nên sử dụng những cấu trúc chỉ với nhữngkiểudữ liệu nhỏ, và những hành vi hay thuộc tính của nó giống như các kiểu dữ liệu đượcxây dựng sẵn.Cấu trúc có hiệu quả khi chúng ta sử dụng chúng trong mảng bộ nhớ (Chương 9).Tuy nhiên, cấu trúc sẽ kém hiệu quả khi chúng ta sử dụng dạng tập hợp (collections).Tập hợp được xây dựng hướng tới các kiểu dữ liệu tham chiếu.Trong chương này chúng ta sẽ tìm hiểu các định nghĩa và làm việc với kiểu cấu trúc vàcáchsử dụng bộ khởi dựng để khởi tạo những giá trị của cấu trúc.Định nghĩa một cấu trúcCú pháp để khai báo một cấu trúc cũng tương tự như cách khai báo một lớp: [thuộc tính] [bổ sung truy cập] struct [: danh sách giao diện] { [thành viên của cấu trúc] } Ví dụ 7.1 sau minh họa cách tạo một cấu trúc. Kiểu Location thể hiện mộtđiểm trong không gian hai chiều. Lưu ý rằng cấu trúc Location này được khai báochính xác như khi thực hiện khai báo với một lớp, ngoại trừ việc sử dụng từ khóastruct. Ngoài ra cũng lưu ý rằng hàm khởi dựng của Location lấy hai số nguyên vàgán những giá trị của chúng cho các biến thành viên, x và y. Tọa độ x và y củaLocation được khai báo như là thuộc tính. Ví dụ 7.1 Tạo một cấu trúc.-----------------------------------------------------------------------------using System;public struct Location{ public Location( int xCoordinate, int yCoordinate) { xVal = xCoordinate; yVal = yCoordinate; } public int x { get { return xVal; } set { xVal = value; } } public int y { get { return yVal; } set { yVal = value; } } public override string ToString() { return (String.Format(“{0}, {1}”, xVal, yVal)); } // thuộc tính private lưu toạ độ x, y private int xVal; private int yVal;}public class Tester{ public void myFunc( Location loc) { loc.x = 50; loc.y = 100; Console.WriteLine(“Loc1 location: {0}”, loc); } static void Main() { Location loc1 = new Location( 200, 300); Console.WriteLine(“Loc1 location: {0}”, loc1); Tester t = new Tester(); t.myFunc( loc1 ); Console.WriteLine(“Loc1 location: {0}”, loc1); }}-----------------------------------------------------------------------------Không giống như những lớp, cấu trúc không hỗ trợ việc thừa kế. Chúng được thừakế ngầm định từ lớp object (tương tự như tất cả các kiểu dữ liệu trong C#, bao gồmcác kiểu dữ liệu xây dựng sẵn) nhưng không thể kế thừa từ các lớp khác hay cấutrúc khác. Cấu trúc cũng được ngầm định là sealed, điều này có ý nghĩa là không cólớp nào hay bất cứ cấu trúc nào có thể dẫn xuất từ nó. Tuy nhiên, cũng giống như cáclớp, cấu trúc có thể thực thi nhiều giao diện. Sau đây là một số sự khác nhau nữa là: Không có bộ hủy và bộ khởi tạo mặc định tùy chọn: Những cấu trúc không có bộ hủy và cũng không có bộ khởi tạo mặc định không tham số tùy chọn. Nếu chúng ta không cung cấp bất cứ bộ khởi tạo nào thì cấu trúc sẽ được cung cấp một bộ khởi tạo mặc định, khi đó giá trị 0 sẽ được thiết lập cho tất cả các dữ liệu thành viên hay những giá trị mặc định tương ứng cho từng kiểu dữ liệu (bảng 4.2). Nếuchúng ta cung cấp bất cứ bộ khởi dựng nào thì chúng ta phải khởi tạo tất cả cáctrường trong cấu trúc. nKhông tchophép x Vkhởi atạo: lchúng =takhông 2thể 0khởi ;tạo p rcác itrường vthể a ...
Nội dung trích xuất từ tài liệu:
Cấu trúc phần đầuCẤU TRÚC · Định nghĩa một cấu trúc · Tạo cấu trúc · Cấu trúc là một kiểu giá trị · Gọi bộ khởi dựng mặc định · Tạo cấu trúc không gọi new · Câu hỏi & bài tậpCấu trúc là kiểu dữ liệu đơn giản do người dùng định nghĩa, kích thước nhỏ dùng đểthay thế cho lớp. Những cấu trúc thì tương tự như lớp cũng chứa các phương thức,những thuộc tính, các trường, các toán tử, các kiểu dữ liệu lồng bên trong và bộ chỉ mục(indexer).Có một số sự khác nhau quan trọng giữa những lớp và cấu trúc. Ví dụ, cấu trúc thìkhông hỗtrợ kế thừa và bộ hủy giống như kiểu lớp. Một điều quan trọng nhất là trong khi lớp làkiểudữ liệu tham chiếu, thì cấu trúc là kiểu dữ lịêu giá trị (Chương 3 đã thảo luận về kiểudữ liệu tham chiếu và kiểu dữ liệu giá trị). Do đó cấu trúc thường dùng để thể hiểncác đối tượng không đòi hỏi một ngữ nghĩa tham chiếu, hay một lớp nhỏ mà khi đặtvào trong stack thì có lợi hơn là đặt trong bộ nhớ heap.Một sự nhận xét được rút ra là chúng ta chỉ nên sử dụng những cấu trúc chỉ với nhữngkiểudữ liệu nhỏ, và những hành vi hay thuộc tính của nó giống như các kiểu dữ liệu đượcxây dựng sẵn.Cấu trúc có hiệu quả khi chúng ta sử dụng chúng trong mảng bộ nhớ (Chương 9).Tuy nhiên, cấu trúc sẽ kém hiệu quả khi chúng ta sử dụng dạng tập hợp (collections).Tập hợp được xây dựng hướng tới các kiểu dữ liệu tham chiếu.Trong chương này chúng ta sẽ tìm hiểu các định nghĩa và làm việc với kiểu cấu trúc vàcáchsử dụng bộ khởi dựng để khởi tạo những giá trị của cấu trúc.Định nghĩa một cấu trúcCú pháp để khai báo một cấu trúc cũng tương tự như cách khai báo một lớp: [thuộc tính] [bổ sung truy cập] struct [: danh sách giao diện] { [thành viên của cấu trúc] } Ví dụ 7.1 sau minh họa cách tạo một cấu trúc. Kiểu Location thể hiện mộtđiểm trong không gian hai chiều. Lưu ý rằng cấu trúc Location này được khai báochính xác như khi thực hiện khai báo với một lớp, ngoại trừ việc sử dụng từ khóastruct. Ngoài ra cũng lưu ý rằng hàm khởi dựng của Location lấy hai số nguyên vàgán những giá trị của chúng cho các biến thành viên, x và y. Tọa độ x và y củaLocation được khai báo như là thuộc tính. Ví dụ 7.1 Tạo một cấu trúc.-----------------------------------------------------------------------------using System;public struct Location{ public Location( int xCoordinate, int yCoordinate) { xVal = xCoordinate; yVal = yCoordinate; } public int x { get { return xVal; } set { xVal = value; } } public int y { get { return yVal; } set { yVal = value; } } public override string ToString() { return (String.Format(“{0}, {1}”, xVal, yVal)); } // thuộc tính private lưu toạ độ x, y private int xVal; private int yVal;}public class Tester{ public void myFunc( Location loc) { loc.x = 50; loc.y = 100; Console.WriteLine(“Loc1 location: {0}”, loc); } static void Main() { Location loc1 = new Location( 200, 300); Console.WriteLine(“Loc1 location: {0}”, loc1); Tester t = new Tester(); t.myFunc( loc1 ); Console.WriteLine(“Loc1 location: {0}”, loc1); }}-----------------------------------------------------------------------------Không giống như những lớp, cấu trúc không hỗ trợ việc thừa kế. Chúng được thừakế ngầm định từ lớp object (tương tự như tất cả các kiểu dữ liệu trong C#, bao gồmcác kiểu dữ liệu xây dựng sẵn) nhưng không thể kế thừa từ các lớp khác hay cấutrúc khác. Cấu trúc cũng được ngầm định là sealed, điều này có ý nghĩa là không cólớp nào hay bất cứ cấu trúc nào có thể dẫn xuất từ nó. Tuy nhiên, cũng giống như cáclớp, cấu trúc có thể thực thi nhiều giao diện. Sau đây là một số sự khác nhau nữa là: Không có bộ hủy và bộ khởi tạo mặc định tùy chọn: Những cấu trúc không có bộ hủy và cũng không có bộ khởi tạo mặc định không tham số tùy chọn. Nếu chúng ta không cung cấp bất cứ bộ khởi tạo nào thì cấu trúc sẽ được cung cấp một bộ khởi tạo mặc định, khi đó giá trị 0 sẽ được thiết lập cho tất cả các dữ liệu thành viên hay những giá trị mặc định tương ứng cho từng kiểu dữ liệu (bảng 4.2). Nếuchúng ta cung cấp bất cứ bộ khởi dựng nào thì chúng ta phải khởi tạo tất cả cáctrường trong cấu trúc. nKhông tchophép x Vkhởi atạo: lchúng =takhông 2thể 0khởi ;tạo p rcác itrường vthể a ...
Tìm kiếm theo từ khóa liên quan:
Công nghệ thông tin kỹ thuật lập trình ngôn ngữ lập trình ngôn ngữ C# C# Cấu trúc phần đầuTài liệu liên quan:
-
52 trang 439 1 0
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 329 0 0 -
74 trang 309 0 0
-
96 trang 305 0 0
-
Báo cáo thực tập thực tế: Nghiên cứu và xây dựng website bằng Wordpress
24 trang 299 0 0 -
Đồ án tốt nghiệp: Xây dựng ứng dụng di động android quản lý khách hàng cắt tóc
81 trang 291 0 0 -
Tài liệu dạy học môn Tin học trong chương trình đào tạo trình độ cao đẳng
348 trang 291 1 0 -
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 282 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 279 0 0 -
EBay - Internet và câu chuyện thần kỳ: Phần 1
143 trang 278 0 0