Ngôn ngữ lập trình: C# và .NET phần 3
lượt xem 9
download
Errors and Exception Handling Lỗi luôn luôn tồn tại, cho dù hệ thống được thiết kế tốt thế nào – Lỗi không được quyền truy cập Lỗi do thiết bị hỏng (đía lỗi) Lỗi do đường truyền mạng hỏng
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Ngôn ngữ lập trình: C# và .NET phần 3
- C# and .NET Framework Bài 3: Lập trình nâng cao trong C# Đoàn Quang Minh minhdqtt@gmail.com http://www.VTPortal.net Last update: 21. Dec 2006 Last 21. Lập trình nâng cao trong C# - Editor: trì Editor: 1 Đoàn Quang Minh oà
- Mục lục Exceptions User-Defined Casts Delegates Events Generics Preprocessor Directive Unsafe code Lập trình nâng cao trong C# - Editor: trì Editor: 2 Đoàn Quang Minh oà
- Errors and Exception Handling Lỗi luôn luôn tồn tại, cho dù hệ thống được thiết kế tốt thế nào – Lỗi không được quyền truy cập – Lỗi do thiết bị hỏng (đía lỗi) – Lỗi do đường truyền mạng hỏng Khi một lỗi xuất hiện, .NET sẽ ném ra một ngoại lệ – Các ngoại lệ đều kế thừa từ lớp Exception – Tất cả các ngoại lệ cơ bản đều được cung cấp bởi .NET – Nếu gặp lỗi, chúng ta nên ném ra một ngoại lệ đặc biệt trong đó có mô tả thông tin rõ ràng về ngoại lệ đó – Nếu không tìm được lớp ngoại lệ phù hợp, có thể xây dựng lớp ngoại lệ của riêng mình Lập trình nâng cao trong C# - Editor: trì Editor: 3 Đoàn Quang Minh oà
- Errors and Exception Handling Lập trình nâng cao trong C# - Editor: trì Editor: 4 Đoàn Quang Minh oà
- Errors and Exception Handling try { … } catch (Exception e) { … } finally { … } Lập trình nâng cao trong C# - Editor: trì Editor: 5 Đoàn Quang Minh oà
- Errors and Exception Handling Phần try thực thi các lệnh bình thường Phần catch xử lý các ngoại lệ có thể xuất hiện – Nếu không sử dụng ngoại lệ ném ra, có thể bỏ qua phần đối tượng đó. – Có thể có nhiều phần catch trong một khối try catch, khi đó mỗi phần catch xử lý một ngoại lệ khác nhau. – Ngoại lệ có thể được ném lại bằng từ khóa throw. Phần finally thực thi các lệnh kết thúc của khối lệnh. Ví dụ trong việc xử lý tập tin – Phần try thực thi các lệnh như mở file, đọc ghi bình thường – Phần catch xử lý lỗi. – Phần finally, nếu file được mở thì phải đóng lại đư Lập trình nâng cao trong C# - Editor: trì Editor: 6 Đoàn Quang Minh oà
- User-Defined Casts Toán tử ép kiểu as Chúng ta thường xuyên phải ép kiểu trong C# – Có 2 loại ép kiểu trong C#: implicit (an toàn tuyệt đối), lo explicit(có rủi ro) – Có thể ép kiểu từ lớp kế thừa về lớp cơ sở, song không thể làm ngược lại – Có thể ép kiểu qua lại giữa 2 lớp, khi đó cần khai báo hàm ép kiểu public static implicit operator conv-type-out ( conv- public conv conv type-in operand ) public static explicit operator conv-type-out ( conv- public conv conv type-in operand ) Lập trình nâng cao trong C# - Editor: trì Editor: 7 Đoàn Quang Minh oà
- Delegates delegate – Có những công việc không xác định lúc biên dịch, chỉ xác định lúc thực thi. – Các thuật toán tổng quát, ví dụ sắp xếp: không thể định nghĩa phương thức so sánh 2 đối tượng bất kỳ – delegate là kiểu tham chiếu, giống như class (trong delegate C#), về ý nghĩa giống con trỏ hàm trong C++ [attributes] [modifiers] delegate result-type identifier delegate ([formal-parameters]); Lập trình nâng cao trong C# - Editor: trì Editor: 8 Đoàn Quang Minh oà
- Delegates delegate void MyDelegate(int i); delegate MyDelegate(int class Program { public static void Main() { TakesADelegate(new MyDelegate(DelegateFunction)); } public static void TakesADelegate(MyDelegate SomeFunction) public TakesADelegate(MyDelegate { SomeFunction(21); } public static void DelegateFunction(int i) public DelegateFunction(int { System.Console.WriteLine("Called by delegate with number: {0}.", i); } } Lập trình nâng cao trong C# - Editor: trì Editor: 9 Đoàn Quang Minh oà
- Events Sự kiện – Được sử dụng để báo hiệu một điều gì đó xảy ra. – Trong Windows, có rất nhiều sự kiện. Windows, – Trong C#, event là một dạng đặc biệt của delegate C#, [attributes] [modifiers] event type declarator; [attributes] [modifiers] event event type member-name {accessor-declarations}; event Phát sinh sự kiện – Định nghĩa tham số sự kiện, đặt tên là EventNameEventArgs, kế thừa từ System.EventArgs. – Định nghĩa một delegates cho sự kiện, đặt tên là EventNameEventHandler. – Phát sinh sự kiện Khai báo sự kiện Khai báo một phương thức OnEventName để phát sinh sự kiện Lập trình nâng cao trong C# - Editor: trì Editor: 10 Đoàn Quang Minh oà
- Events Xử lý sự kiện – Nếu một component phát sinh một sự kiện, có thể bắt và xử lý sự kiện đó. – Để hander sự kiện trong Windows Form hoặc trong Web Form: Khai báo component (ví dụ button) Khai báo hàm xử lý sự kiện Gắn hàm vào sự kiện Lập trình nâng cao trong C# - Editor: trì Editor: 11 Đoàn Quang Minh oà
- Generics Generics – Cho phép class, struct, iinterface, method sử dụng class, struct nterface, kiểu dữ liệu mà nó lưu trữ như là tham số đầu vào. – Khái niệm giống như template của C++. – Generics xuất hiện nhằm mục đích xử lí chính xác Generics xu kiểu của dữ liệu. Ví dụ, với stack, nếu không có generics thì dữ liệu coi như các object, nên đòi hỏi phải ép kiểu khi xử lí, điều này có thể gây lỗi run-time. Tạo và sử dụng Generics – Khai báo giống như template trong C++: dùng cặp dấu < > – Sử dụng: phải chỉ định chính xác kiểu dữ liệu Lập trình nâng cao trong C# - Editor: trì Editor: 12 Đoàn Quang Minh oà
- Generics Ví dụ sử dụng Generics – Khai báo: public class Stack { private ItemType[] items = new ItemType[100]; public void Push(ItemType data) {…} public ItemType Pop() {…} } – Sử dụng Stack s = new Stack(); s.Push(3); int x = s.Pop(); Lập trình nâng cao trong C# - Editor: trì Editor: 13 Đoàn Quang Minh oà
- Preprocessor Directives #define and #undef #if, #elif, #else, and #endif #warning and #error #region and #endregion #line Lập trình nâng cao trong C# - Editor: trì Editor: 14 Đoàn Quang Minh oà
- Memory Management C# tự động quản lý bộ nhớ nhờ vào bộ thu gom C# rác – Bộ nhớ ảo trong Windows – Stack và heap Stack Có 2 loại kiểu dữ liệu trong C# lo – Value Data Types: Dữ liệu chứa tại nơi nó được cấp phát vùng nhớ Các kiểu số, bool, char, date, các cấu trúc, các kiểu liệt kê – Reference Data Types: Chứa một con trỏ trỏ tới nơi cất giữ dữ liệu Bao gồm kiểu string, mảng, class, delegate Lập trình nâng cao trong C# - Editor: trì Editor: 15 Đoàn Quang Minh oà
- Unsafe Code C# tự quản lý bộ nhớ, tuy nhiên có những C# lúc chúng ta cần sử dụng con trỏ. – Dùng từ khóa unsafe tại vùng lệnh muốn sử dụng con trỏ – Phải có tham số biên dịch unsafe khi dịch chương trình Con trỏ: Con tr – Các khai báo và sử dụng tương tự C++ Lập trình nâng cao trong C# - Editor: trì Editor: 16 Đoàn Quang Minh oà
- Tài liệu tham khảo Professional C#, Second Edition http://www.asp.net http://www.microsoft.com/net/default.mspx http://www.codeproject.com Địa chỉ download tài liệu http://www.thanglong.edu.vn/giang-day/tab.aspx http://www.thanglong.edu.vn/giang Diễn đàn C# & .NET C# http://www.thanglong.edu.vn/forum/cmd/0/categ http://www.thanglong.edu.vn/forum/cmd/0/categ ory/hoc-tap-nghien-cuu/dot-net/tab.aspx Lập trình nâng cao trong C# - Editor: trì Editor: 17 Đoàn Quang Minh oà
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình Ngôn ngữ lập trình C - ThS. Tiêu Kim Cương
202 p | 11891 | 5498
-
Giáo trình Ngôn ngữ lập trình C (Phần 1) - ThS.Tiêu Kim Cương
21 p | 571 | 201
-
Giáo trình ngôn ngữ lập trinh C part 2
21 p | 394 | 163
-
Ngân hàng đề thi hết học phần Ngôn ngữ lập trình C++
7 p | 999 | 144
-
ngôn ngữ lập trình c và c++ (bài giảng, bài tập, lời giải mẫu)
287 p | 275 | 68
-
Bài giảng Ngôn ngữ lập trình C++: Chương 1 - Trần Minh Châu
17 p | 250 | 54
-
PHẦN 2: GIỚI THIỆU VỀ MỘT NGÔN NGỮ LẬP TRÌNH NGÔN NGỮ LẬP TRÌNH C
106 p | 145 | 19
-
Ngôn ngữ lập trình C và C++
0 p | 144 | 18
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 1: Ngôn ngữ lập trình C) - Chương 1: Ôn tập một số nội dung chính của NNLT C
31 p | 157 | 13
-
Bài giảng Ngôn ngữ lập trình C và C++: Bài 5 - TS. Đỗ Đăng Khoa
63 p | 100 | 8
-
Bài giảng Ngôn ngữ lập trình C - Chương 1: Giới thiệu ngôn ngữ C
4 p | 104 | 8
-
Bài giảng Ngôn ngữ lập trình C và C++: Bài 1 - TS. Đỗ Đăng Khoa
53 p | 112 | 7
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ lập trình C++) - Chương 5: Các lớp nhập/xuất trong C++
19 p | 132 | 7
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ C++) - Chương 2: Giới thiệu về ngôn ngữ lập trình C++
49 p | 137 | 7
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ lập trình C++) - Chương 3: Lớp và đối tượng
52 p | 112 | 5
-
Bài giảng Ngôn ngữ lập trình C/C++ (Bài giảng tuần 1) – Nguyễn Hải Châu
7 p | 142 | 5
-
Bài giảng Ngôn ngữ lập trình C và C++: Bài 4 - TS. Đỗ Đăng Khoa
40 p | 95 | 5
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ lập trình C++) - Chương 6: Mẫu (template)
27 p | 85 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn