1Lập trình .NET và C#
Lecture 7:
Structure- Cấu trúc
TS Đào Nam Anh
UTM, Khoa KH&CN
2Resources
Các giải pháp lập trình C#, Nguyễn Ngọc Bình Phương - Thái Thanh Phong
Allen Jones. C# Programmer's Cookbook. Microsoft Press, 2004
John Connell. Coding Techniques for Microsoft Visual Basic .NET. Microsoft
Press, 2002.
Harvey M. Deitel, Paul J. Deitel, & Tem R. Nieto. Visual Basic .NET How to
Program, Second Edition. Prentice Hall, 2002.
Jose Mojica. C# and VB .NET Conversion
15 trang |
Chia sẻ: huongnhu95 | Lượt xem: 380 | Lượt tải: 0
Tóm tắt tài liệu Giáo trình Lập trình .NET và C# - Chương 7: Structure-Cấu trúc - Đào Nam Anh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Pocket Reference. O'Reilly, 2002.
James Avery. Ten Must-Have Tools Every Developer Should Download Now.
MSDN Magazine, 2004.
Karl Moore. The Ultimate VB.NET and ASP.NET Code Book. Apress, 2003
Matthew MacDonald. Microsoft Visual Basic .NET Programmer's Cookbook.
Microsoft Press, 2003.
Mark Schmidt & Simon Robinson. Microsoft Visual C# .NET 2003 Developer's
Cookbook. Sams Publishing, 2003.
Dương Quang Thiện. Lập trình Visual C# thế nào? Nhà xuất bản Tổng Hợp TP.
Hồ Chí Minh, 2005.
Nguyễn Ngọc Bình Phương & Lê Trần Nhật Quỳnh. Các giải pháp lập trình
Visual Basic .NET. Nhà xuất bản Giao thông Vận tải, 2006
www.msdn.microsoft.com, www.codeproject.com, www.msd2d.com,
www.developersdex.com, www.windowsforms.net, www.gotdotnet.com,
www.codeguru.com, www.developerfusion.com
3 Định nghĩa 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
4Định nghĩa cấu trúc
Cấ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.
Tương tự như lớp, cấu trúc 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).
5Định nghĩa cấu trúc
Có một số sự khác nhau quan trọng giữa
những lớp và cấu trúc.
Cấu trúc thì không hỗ trợ kế thừa và bộ hủy
giống như kiểu lớp.
Trong khi lớp là kiểu dữ liệu tham chiếu, thì
cấu trúc là kiểu dữ liệu giá trị
Do đó cấu trúc thường dùng để thể hiển các
đối tượng không đòi hỏi một ngữ nghĩa tham
chiếu
6Định nghĩa cấu trúc
nên sử dụng những cấu trúc chỉ với những
kiểu dữ 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 được
xây dựng sẵn.
7Định nghĩa cấu trúc
Cú 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 <tên cấu
trúc> [: danh sách giao diện]
{
[thành viên của cấu trúc]
}
8using 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
9Định nghĩa cấu trúc
Cấu trúc không hỗ trợ việc thừa kế. Chúng
được thừa kế ngầm định từ lớp object ()
nhưng không thể kế thừa từ các lớp khác
hay cấu trú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ác lớp, cấu trúc
có thể thực thi nhiều giao diện.
10
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 không cung cấp 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
11
Không cho phép khởi tạo: không thể khởi tạo
các trường thể hiện (instance fields) trong
cấu trúc, do đó đoạn mã nguồn sau sẽ
không hợp lệ:
private int xVal = 20;
private int yVal = 50;
mặc dù điều này thực hiện tốt đối với lớp.
12
Tạo 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
13
Tạo cấu trúc
sử dụng từ khóa new trong câu lệnh gán, như
khi chúng ta tạo một đối tượng của lớp.
Location loc1 = new Location( 200, 300);
14
Tạo cấu trúc
Không sử dụng từ khóa new
Location loc1;
loc1.xVal = 100;
loc1.yVal = 250;
15
Question
Các file đính kèm theo tài liệu này:
- giao_trinh_lap_trinh_net_va_c_chuong_7_structure_cau_truc_da.pdf