Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 17 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
17
Dung lượng
219,8 KB
Nội dung
L L ậ ậ p tr p tr ì ì nh nâng cao trong C# nh nâng cao trong C# - - Editor Editor : : Đo Đo à à n Quang Minh n Quang Minh 1 1 C#and.NETFrameworkC#and.NETFramework B B à à i 3: L i 3: L ậ ậ p tr p tr ì ì nh nâng cao nh nâng cao trong trong C#C# Đo Đo à à n Quang Minh n Quang Minh minhdqtt@gmail.com minhdqtt@gmail.com http http ://www.VTPortal.net ://www.VTPortal.net Last update: Last update: 21. Dec 2006 21. Dec 2006 L L ậ ậ p tr p tr ì ì nh nâng cao trong C# nh nâng cao trong C# - - Editor Editor : : Đo Đo à à n Quang Minh n Quang Minh 2 2 M M ụ ụ c l c l ụ ụ c c Exceptions Exceptions User User - - Defined Casts Defined Casts Delegates Delegates Events Events Generics Generics Preprocessor Directive Preprocessor Directive Unsafe code Unsafe code L L ậ ậ p tr p tr ì ì nh nâng cao trong C# nh nâng cao trong C# - - Editor Editor : : Đo Đo à à n Quang Minh n Quang Minh 33 Errors and Exception Handling Errors and Exception Handling L L ỗ ỗ i luôn luôn t i luôn luôn t ồ ồ n t n t ạ ạ i, cho d i, cho d ù ù h h ệ ệ th th ố ố ng đư ng đư ợ ợ c thi c thi ế ế t k t k ế ế t t ố ố t t th th ế ế n n à à o o – – L L ỗ ỗ i không đư i không đư ợ ợ c quy c quy ề ề n truy c n truy c ậ ậ p p – – L L ỗ ỗ i do thi i do thi ế ế t b t b ị ị h h ỏ ỏ ng ng ( ( đ đ í í a l a l ỗ ỗ i) i) – – L L ỗ ỗ i do đư i do đư ờ ờ ng truy ng truy ề ề n m n m ạ ạ ng h ng h ỏ ỏ ng ng Khi m Khi m ộ ộ t l t l ỗ ỗ i xu i xu ấ ấ t hi t hi ệ ệ n, .NET s n, .NET s ẽ ẽ n n é é m ra m m ra m ộ ộ t ngo t ngo ạ ạ i l i l ệ ệ – – C C á á c ngo c ngo ạ ạ i l i l ệ ệ đ đ ề ề u k u k ế ế th th ừ ừ a t a t ừ ừ l l ớ ớ p Exception p Exception – – T T ấ ấ t c t c ả ả c c á á c ngo c ngo ạ ạ i l i l ệ ệ cơ b cơ b ả ả n đ n đ ề ề u đư u đư ợ ợ c cung c c cung c ấ ấ p b p b ở ở i .NET i .NET – – N N ế ế u g u g ặ ặ p l p l ỗ ỗ i, ch i, ch ú ú ng ta nên n ng ta nên n é é m ra m m ra m ộ ộ t ngo t ngo ạ ạ i l i l ệ ệ đ đ ặ ặ c bi c bi ệ ệ t trong đ t trong đ ó ó c c ó ó mô t mô t ả ả thông tin rõ r thông tin rõ r à à ng v ng v ề ề ngo ngo ạ ạ i l i l ệ ệ đ đ ó ó – – N N ế ế u không t u không t ì ì m đư m đư ợ ợ c l c l ớ ớ p ngo p ngo ạ ạ i l i l ệ ệ ph ph ù ù h h ợ ợ p, c p, c ó ó th th ể ể xây d xây d ự ự ng l ng l ớ ớ p p ngo ngo ạ ạ i l i l ệ ệ c c ủ ủ a riêng m a riêng m ì ì nh nh L L ậ ậ p tr p tr ì ì nh nâng cao trong C# nh nâng cao trong C# - - Editor Editor : : Đo Đo à à n Quang Minh n Quang Minh 4 4 Errors and Exception Handling Errors and Exception Handling L L ậ ậ p tr p tr ì ì nh nâng cao trong C# nh nâng cao trong C# - - Editor Editor : : Đo Đo à à n Quang Minh n Quang Minh 5 5 Errors and Exception Handling Errors and Exception Handling try try { { … … } } catch (Exception e) catch (Exception e) { { … … } } finally finally { { … … } } L L ậ ậ p tr p tr ì ì nh nâng cao trong C# nh nâng cao trong C# - - Editor Editor : : Đo Đo à à n Quang Minh n Quang Minh 6 6 Errors and Exception Handling Errors and Exception Handling Ph Ph ầ ầ n n try try th th ự ự c c thi thi c c á á c c l l ệ ệ nh nh b b ì ì nh nh thư thư ờ ờ ng ng Ph Ph ầ ầ n n catch catch x x ử ử lý lý c c á á c c ngo ngo ạ ạ i i l l ệ ệ c c ó ó th th ể ể xu xu ấ ấ t t hi hi ệ ệ n n – – N N ế ế u u không không s s ử ử d d ụ ụ ng ng ngo ngo ạ ạ i i l l ệ ệ n n é é m m ra ra , , c c ó ó th th ể ể b b ỏ ỏ qua qua ph ph ầ ầ n n đ đ ố ố i i tư tư ợ ợ ng ng đ đ ó ó . . – – C C ó ó th th ể ể c c ó ó nhi nhi ề ề u u ph ph ầ ầ n n catch catch trong trong m m ộ ộ t t kh kh ố ố i i try catch try catch , , khi khi đ đ ó ó m m ỗ ỗ i i ph ph ầ ầ n n catch catch x x ử ử lý lý m m ộ ộ t t ngo ngo ạ ạ i i l l ệ ệ kh kh á á c c nhau nhau . . – – Ngo Ngo ạ ạ i i l l ệ ệ c c ó ó th th ể ể đư đư ợ ợ c c n n é é m m l l ạ ạ i i b b ằ ằ ng ng t t ừ ừ kh kh ó ó a a throw throw . . Ph Ph ầ ầ n n finally finally th th ự ự c c thi thi c c á á c c l l ệ ệ nh nh k k ế ế t t th th ú ú c c c c ủ ủ a a kh kh ố ố i i l l ệ ệ nh nh . . V V í í d d ụ ụ trong trong vi vi ệ ệ c c x x ử ử lý lý t t ậ ậ p p tin tin – – Ph Ph ầ ầ n n try try th th ự ự c c thi thi c c á á c c l l ệ ệ nh nh như như m m ở ở file, file, đ đ ọ ọ c c ghi ghi b b ì ì nh nh thư thư ờ ờ ng ng – – Ph Ph ầ ầ n n catch catch x x ử ử lý lý l l ỗ ỗ i i . . – – Ph Ph ầ ầ n n finally finally , , n n ế ế u u file file đư đư ợ ợ c c m m ở ở th th ì ì ph ph ả ả i i đ đ ó ó ng ng l l ạ ạ i i L L ậ ậ p tr p tr ì ì nh nâng cao trong C# nh nâng cao trong C# - - Editor Editor : : Đo Đo à à n Quang Minh n Quang Minh 7 7 User User - - Defined Casts Defined Casts To To á á n n t t ử ử é é p p ki ki ể ể u u as as Ch Ch ú ú ng ng ta ta thư thư ờ ờ ng ng xuyên xuyên ph ph ả ả i i é é p p ki ki ể ể u u trong trong C#C# – – C C ó ó 2 2 lo lo ạ ạ i i é é p p ki ki ể ể u u trong trong C#: implicit (an C#: implicit (an to to à à n n tuy tuy ệ ệ t t đ đ ố ố i i ), ), explicit(c explicit(c ó ó r r ủ ủ i i ro ro ) ) – – C C ó ó th th ể ể é é p p ki ki ể ể u u t t ừ ừ l l ớ ớ p p k k ế ế th th ừ ừ a a v v ề ề l l ớ ớ p p cơ cơ s s ở ở , song , song không không th th ể ể l l à à m m ngư ngư ợ ợ c c l l ạ ạ i i – – C C ó ó th th ể ể é é p p ki ki ể ể u u qua qua l l ạ ạ i i gi gi ữ ữ a a 2 2 l l ớ ớ p p , , khi khi đ đ ó ó c c ầ ầ n n khai khai b b á á o o h h à à m m é é p p ki ki ể ể u u public static implicit operator public static implicit operator conv conv - - type type - - out out ( ( conv conv - - type type - - in in operand operand ) ) public static explicit operator public static explicit operator conv conv - - type type - - out out ( ( conv conv - - type type - - in in operand operand ) ) L L ậ ậ p tr p tr ì ì nh nâng cao trong C# nh nâng cao trong C# - - Editor Editor : : Đo Đo à à n Quang Minh n Quang Minh 8 8 Delegates Delegates delegate delegate – – C C ó ó nh nh ữ ữ ng ng công công vi vi ệ ệ c c không không x x á á c c đ đ ị ị nh nh l l ú ú c c biên biên d d ị ị ch ch , , ch ch ỉ ỉ x x á á c c đ đ ị ị nh nh l l ú ú c c th th ự ự c c thi thi . . – – C C á á c c thu thu ậ ậ t t to to á á n n t t ổ ổ ng ng qu qu á á t t , , v v í í d d ụ ụ s s ắ ắ p p x x ế ế p p : : không không th th ể ể đ đ ị ị nh nh ngh ngh ĩ ĩ a a phương phương th th ứ ứ c c so so s s á á nh nh 2 2 đ đ ố ố i i tư tư ợ ợ ng ng b b ấ ấ t t k k ỳ ỳ – – delegate delegate l l à à ki ki ể ể u u tham tham chi chi ế ế u u , , gi gi ố ố ng ng như như class ( class ( trong trong C#), C#), v v ề ề ý ý ngh ngh ĩ ĩ a a gi gi ố ố ng ng con con tr tr ỏ ỏ h h à à m m trong trong C++ C++ [ [ attributes attributes ] [ ] [ modifiers modifiers ] ] delegate delegate result result - - type type identifier identifier ( ( [ [ formal formal - - parameters parameters ] ] ); ); L L ậ ậ p tr p tr ì ì nh nâng cao trong C# nh nâng cao trong C# - - Editor Editor : : Đo Đo à à n Quang Minh n Quang Minh 9 9 Delegates Delegates delegate void delegate void MyDelegate(int MyDelegate(int i); i); class Program class Program { { public static void Main() public static void Main() { { TakesADelegate(new TakesADelegate(new MyDelegate(DelegateFunction MyDelegate(DelegateFunction )); )); } } public static void public static void TakesADelegate(MyDelegate TakesADelegate(MyDelegate SomeFunction SomeFunction ) ) { { SomeFunction(21); SomeFunction(21); } } public static void public static void DelegateFunction(int DelegateFunction(int i) i) { { System.Console.WriteLine("Called System.Console.WriteLine("Called by delegate with number: {0}.", i); by delegate with number: {0}.", i); } } } } L L ậ ậ p tr p tr ì ì nh nâng cao trong C# nh nâng cao trong C# - - Editor Editor : : Đo Đo à à n Quang Minh n Quang Minh 10 10 Events Events S S ự ự ki ki ệ ệ n n – – Đư Đư ợ ợ c c s s ử ử d d ụ ụ ng ng đ đ ể ể b b á á o o hi hi ệ ệ u u m m ộ ộ t t đi đi ề ề u u g g ì ì đ đ ó ó x x ả ả y y ra ra . . – – Trong Trong Windows, Windows, c c ó ó r r ấ ấ t t nhi nhi ề ề u u s s ự ự ki ki ệ ệ n n . . – – Trong Trong C#, event C#, event l l à à m m ộ ộ t t d d ạ ạ ng ng đ đ ặ ặ c c bi bi ệ ệ t t c c ủ ủ a a delegate delegate [ [ attributes attributes ] [ ] [ modifiers modifiers ] ] event event type type declarator declarator ; ; [ [ attributes attributes ] [ ] [ modifiers modifiers ] ] event event type type member member - - name name { { accessor accessor - - declarations declarations }; }; Ph Ph á á t t sinh sinh s s ự ự ki ki ệ ệ n n – – Đ Đ ị ị nh nh ngh ngh ĩ ĩ a a tham tham s s ố ố s s ự ự ki ki ệ ệ n n , , đ đ ặ ặ t t tên tên l l à à EventName EventName EventArgs EventArgs , , k k ế ế th th ừ ừ a a t t ừ ừ System.EventArgs System.EventArgs . . – – Đ Đ ị ị nh nh ngh ngh ĩ ĩ a a m m ộ ộ t t delegates delegates cho cho s s ự ự ki ki ệ ệ n n , , đ đ ặ ặ t t tên tên l l à à EventName EventName EventHandler EventHandler . . – – Ph Ph á á t t sinh sinh s s ự ự ki ki ệ ệ n n Khai Khai b b á á o o s s ự ự ki ki ệ ệ n n Khai Khai b b á á o o m m ộ ộ t t phương phương th th ứ ứ c c On On EventName EventName đ đ ể ể ph ph á á t t sinh sinh s s ự ự ki ki ệ ệ n n [...]... 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: Đoàn Quang Minh Đoà 13 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: Đoàn Quang Minh Đoà 14 Memory Management C# tự động quản lý bộ nhớ nhờ vào bộ thu gom rác... trong C# - Editor: trì Editor: Đoàn Quang Minh Đoà 16 Tàiliệ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àiliệu http://www.thanglong.edu.vn/giang-day/tab.aspx Diễn đàn C# & NET 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:... Stack và heap Có 2 loại kiểu dữ liệu trong C# – 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: Đoàn Quang Minh Đoà 15 Unsafe Code C# tự quản lý bộ nhớ, tuy nhiên... xuất hiện nhằm mục đích xử lí chính xác 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: Đoàn Quang Minh Đoà 12 Generics... 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: Đoàn Quang Minh Đoà 11 Generics Generics – Cho phép class, struct, interface, method sử dụng kiểu dữ liệu mà nó lưu trữ như là tham số đầu vào – Khái niệm giống . trong C# nh nâng cao trong C# - - Editor Editor : : Đo Đo à à n Quang Minh n Quang Minh 1 1 C# and .NET Framework C# and .NET Framework B B à à i 3: L i 3: . trong C# nh nâng cao trong C# - - Editor Editor : : Đo Đo à à n Quang Minh n Quang Minh 3 3 Errors and Exception Handling Errors and Exception Handling