Bài giảng Chuyên đề C#: Chương 2 - Ngôn ngữ lập trình C#

300 9 0
Bài giảng Chuyên đề C#: Chương 2 - Ngôn ngữ lập trình C#

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Chuyên đề C#: Chương 2 - Ngôn ngữ lập trình C# tổng quan C#, các thành phần cơ bản của ngôn ngữ, hệ thống kiểu trong .NET, Namespace, các câu lệnh, lớp, thừa kế, Property, mảng và Indexer, Delegate và event handler.

Chương Ngơn ngữ lập trình C# Nội dung      Tổng quan C# Các thành phần ngôn ngữ Hệ thống kiểu NET Namespace Các câu lệnh     Lớp Thừa kế Property, Mảng Indexer Lớp collection    Interface Delegate event handler Xử lý Ngoại lệ Tổng quan C# Tổng quan C#  C# gì? • C# (C-Sharp) ngơn ngữ lập trình Microsoft sáng tạo dựa ưu điểm C++, Java, Smalltalk bổ sung thêm phần  Các phiên C# • C# 1.0 cho NET Framework 1.0 (1.1) • C# 2.0 cho NET Framework 2.0 (3.0) • C# 3.0 cho NET Framework 3.5  File source code C# có phần mở rộng cs (C Sharp) Một chương trình gồm có hay nhiều file source code Tổng quan C#  Mục tiêu thiết kế C# • Ngôn ngữ hướng thành phần (Componentorientation) • Mọi thứ đối tượng • Tạo phần mềm mạnh bền • Bảo tồn đầu tư Ngơn ngữ hướng thành phần  Ngôn ngữ hướng thành phần họ C/C++ • Khái niệm hướng thành phần – Properties, methods, events – Design-time run-time attributes – Tích hợp documentation XML • Cho phép one-stop programming – Khơng header files, IDL, … – Có thể nhúng trang ASP.NET Mọi thứ đối tượng  Quan điểm truyền thống • C++, Java™: Các kiểu sở (Primitive type) tương tác với object • Smalltalk, Lisp: Các kiểu sở object, phải trả giá chi phí thực thi  C# thống loại kiểu khơng phải  trả giá chi phí thực thi Tăng cường kiểu liệu khác • Các kiểu sở : Decimal, SQL… • Collections, … làm việc tất kiểu Tạo phần mềm mạnh bền  Garbage collection (GC) • Khơng bị rị rỉ nhớ trỏ khơng truy cập bất hợp lệ  Ngoại lệ (Exception) • Cho phép xử lý ngoại lệ  An tồn kiểu (Type-safety) • Khơng dùng biến chưa khởi tạo, ép kiểu (cast) khơng an tồn Bảo tồn đầu tư  Kế thừa C++ • Namespaces, pointers (trong unsafe code), unsigned types, …  Tích hợp • C# tương tác với XML, SOAP, COM, DLLs, ngơn ngữ NET Framework  Hàng triệu dịng code C# trong.NET • Đường cong học ngắn • Tăng hiệu Chương trình C# using System; class Program { static void Main(string[] args) { Console.WriteLine("Hello, World"); } } 10 Event Khái niệm  Event • Event field thuộc kiểu delegate mà gọi từ bên lớp mà khai báo  Cú pháp class ClassName { public event DelegateName objD; … } 286 Event So sánh delegate event delegate void DelegateType(); class A { public DelegateType objD; delegate public void Method() { if (objD != null) objD(); } } 287 Event So sánh delegate event class B { public void Xuat1() { Console.WriteLine("Xuat 1"); } public void Xuat2() { Console.WriteLine("Xuat 2"); } public void Ham() { A p = new A(); p.objD = Xuat1; p.objD += Xuat2; p.objD(); p.Method(); } } 288 Event So sánh delegate event Sự kiện delegate void DelegateType(); class A { public event DelegateType objE; public void Method() { if (objE != null) objE(); } } 289 Event So sánh delegate event class B { public void Xuat1() { Console.WriteLine("Xuat 1"); } public void Xuat2() { Console.WriteLine("Xuat 2"); } public void Ham() { A p = new A(); //p.objE = Xuat1; p.objE += Xuat1; p.objE += Xuat2; //p.objE(); p.Method(); } } 290 Event So sánh delegate event  Nhận xét • • • • Event trường hợp đặc biệt delegate Không sử dụng phép gán = event Chỉ dùng phép tóa += hay -= event Event gọi bên lớp khai báo 291 Event Ứng dụng  Ngữ cảnh: Giả sử có lớp A, lớp X: Lớp A lớp trợ giúp (tiện ích), lớp X lớp client • Lớp A có nhiệm vụ tập hợp thơng tin • Sau phân phối thơng tin đến lớp X  Làm nào? Client X A User/Client Designer 292 Event Ứng dụng  Tiếp cận thứ – tiếp cận từ phía client: Kỹ thuật polling • X định kỳ kiểm tra bool property lớp A • Nếu giá trị true gọi phương thức lớp A để lấy liệu Client X A User/Client Designer 293 Event Ứng dụng  Tiếp cận thứ – tiếp cận từ phía designer: Lớp A gọi phương thức lớp X Cung cấp tên phương thức M cho lớp A Client X A Gọi phương thức M cần thông báo cho client User/Client Designer • Kỹ thuật event: Event lớp A dùng cách để thông báo cho client dùng lớp A biết điều xảy đối tượng lớp A 294 Event Ứng dụng  Các bước tổng quát • Lớp A định nghĩa kiện • Lớp X định nghĩa phương thức để truyền cho kiện A (gọi phương thức event handler) • Lớp X đăng ký event handler cho kiện A  (Lúc A gọi hiệu có thơng tin cần thông tin cho lớp X) 295 Event Ứng dụng  Có nhiều cách tạo/sử dụng event, thơng thường theo cách chuẩn sau • Class designer – Khai báo kiểu delegate có hai tham số  Tham số thứ thuộc lớp object, chứa đối tượng phát sinh kiện (VD: Đối tượng lớp A)  Tham số thứ hai thuộc lớp dẫn xuất từ EventArgs, chứa thông tin cần truyền cho client – Định nghĩa public event thuộc kiểu delegate – Gọi event có tác động xảy 296 Event Ứng dụng • Client – Định nghĩa phương thức event handler theo chữ ký kiểu delegate – Đăng ký event handler với kiện 297 Event Ứng dụng class MyClass { public event EventHandler InformationAlert; public void Method() { … if (InformationAlert!= null) InformationAlert(this, new EventArgs()); } }  Sự kiện: • Tên kiện InformationAlert • Thuộc kiểu delegate EventHandler định nghĩa trước NET 298 Event Ứng dụng  Kiểu delegate EventHandler định nghĩa Namespace System sau public delegate void EventHandler(object sender, EventArgs e);  EventArgs lớp định nghĩa namespace System, lớp dùng làm sở cho lớp dùng liên quan đến event 299 Event Ứng dụng class Client { void AlertMethod(object sender, EventArgs e) { // Xử lý event } public void MyMethod() { MyClass a = new MyClass(); a.InformationAlert += AlertMethod; } } 300 ... (bit) sbyte - 128 to 127 byte to 25 5 char U+0000 to U+ffff 16 short - 32, 768 to 32, 767 16 ushort to 65,535 16 int -2 , 147,483,648 to 2, 147,483,647 32 uint to 4 ,29 4,967 ,29 5 32 long -9 ,22 3,3 72, 036,854,775,808... Tổng quan C#  C# gì? • C# (C-Sharp) ngơn ngữ lập trình Microsoft sáng tạo dựa ưu điểm C++, Java, Smalltalk bổ sung thêm phần  Các phiên C# • C# 1.0 cho NET Framework 1.0 (1.1) • C# 2. 0 cho NET... nguyên 16-bit không dấu ToUInt 32 Chuyển giá trị sang giá trị số nguyên 3 2- bit không dấu ToUInt64 Chuyển giá trị sang giá trị số nguyên 64-bit không dấu 19 Các thành phần ngôn ngữ Từ khóa - keyword

Ngày đăng: 09/05/2021, 18:47

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan