Tải bản đầy đủ (.pdf) (14 trang)

Lập trình windows C căn bản

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (185.64 KB, 14 trang )

Lập trình Windows
Các vấn đề cơ bản lập trình C#


Các vấn đề cần nắm






Kiểu dữ liệu trong C# (kỹ thuật boxing và
unboxing).
Cơ chế delegate (ủy quyền).
Cơ chế event (sự kiện).
Lập trình với Thread (tiểu trình).
Nhập môn với winform.


Kiểu dữ liệu trong C#
C# là ngôn ngữ lập trình mạnh về kiểu dữ liệu.
 Chia thành 2 kiểu chủ yếu là: kiểu giá trị (value
type, thông thường là struct như: int, char,…) và
kiểu tham chiếu (reference type, thông thường là
class như: string,…).


 Kiểu giá trị được lưu trong vùng nhớ Stack.

 Kiểu tham chiếu được lưu trong vùng nhớ Heap


(giá trị địa chỉ lưu trong Stack).


Vùng nhớ Stack và Heap
Vùng nhớ Stack là vùng lưu trữ dữ liệu với kích
thước cố định, riêng biệt cho mỗi chương trình.
Mọi dữ liệu được lưu trên Stack sẽ bị loại bỏ
ngay khi hoàn thành phạm vi biến (hoàn tất 1
phương thức, chương trình,…).
 Vùng nhớ Heap là vùng lưu trữ dữ liệu có kích
thước thay đổi và khá đồ sộ. Dữ liệu trên Heap
không bị loại bỏ khi biến tham chiếu đến đã hoàn
thành phạm vi biến.



Boxing và Unboxing


Boxing là quá trình
chuyển dữ liệu từ kiểu
tham trị sang kiểu
tham chiếu. Quá trình
có thể thực hiện
ngầm định.


Boxing và Unboxing



Unboxing là quá trình
ngược lại với boxing,
tức là đưa từ kiểu
tham chiếu ra kiểu
tham trị. Quá trình
phải được thực hiện
tường minh (phải đảm
bảo đúng với kiểu dữ
liệu đã boxing).


Delegate
Delegate là kiểu dữ liệu tham chiếu được dùng
để đóng gói một phương thức với tham số và
kiểu trả về xác định.
 Gần giống con trỏ hàm trong C++ nhưng là
hướng đối tượng, an toàn và bảo mật.
 Khai báo delegate trong namespace hoặc trong
class.
 Ví dụ:


public delegate int CompareFunc(object obj1, object obj2);


Delegate
Sử dụng delegate để xác định phương thức lúc
thực thi.
 Cơ chế multicasting cho phép gọi hai hay nhiều
phương thức thực thi thông qua một ủy quyền

đơn. Mục đích chính là có một ủy quyền có thể
gọi thực hiện nhiều hơn một phương thức. Để
thực hiện được thì kiểu trả về của delegate phải
là kiểu void.
 Ví dụ:
myMulticastDelegate = Writer + Logger;
myMulticastDelegate += Transmitter;



Event
Event (sự kiện) là các hành động xảy ra trong
quá trình chạy chương trình (gõ phím, click chuột,
nhấn nút,…) và được thông báo để được xử lý
thích hợp.
 Event không thể biết trước chính xác khi nào xảy
ra, điều quan trọng là phải được xử lý thích hợp
khi nó xảy ra.



Event


Cơ chế publishing và subscribing nghĩa là mỗi đối
tượng đều có thể publish một tập hợp các event
để các lớp khác nếu cần xử lý khi nó xảy ra thì có
thể đăng ký (subscribe) vào danh sách nhận và
như vậy mỗi khi lớp publish đưa ra một sự kiện
thì tất cả các lớp đã đăng ký sẽ được nhận thông

báo.


Event
Trong .NET cơ chế event được thực thi với
những delegate.
 Lớp publisher định nghĩa một delegate và những
lớp subscriber phải thực thi. Khi một sự kiện xuất
hiện thì phương thức của lớp subscriber được
gọi thông qua delegate.
 Một phương thức được dùng để xử lý các sự
kiện thì được gọi là trình xử lý sự kiện (event
handler).



Event


Khai báo:
public delegate void myEventHandler();
public event myEventHandler myEvent;

hoặc
public EventHandler myEvent;


Thread
Với sức mạnh của CPU hiện nay thì hầu như các
tác vụ thông thường (phép tính, di chuyển dữ

liệu,…) chỉ tiêu tốn một lượng nhỏ tài nguyên
CPU nhưng nếu theo nguyên lý đơn nhiệm thì lại
chiếm riêng nguyên CPU (tức là các chương trình
hay tác vụ khác phải chờ).
 Thread (tiểu trình) là khái niệm trong cơ chế
chương trình đa nhiệm, đại diện cho một hay một
nhóm các tác vụ con.



Thread
Trong chương trình đa nhiệm thì nhiều tiến trình
có thể chạy đồng thời để tận dụng triệt để tài
nguyên CPU.
 Giúp cho chương trình chạy mượt mà và nhanh
chóng hơn.




×