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 11 11 Events Events X X ử ử lý lý s s ự ự ki ki ệ ệ n n – – N N ế ế u u m m ộ ộ t t component component ph ph á á t t sinh sinh m m ộ ộ t t s s ự ự ki ki ệ ệ n n , , c c ó ó th th ể ể b b ắ ắ t t v v à à x x ử ử lý lý s s ự ự ki ki ệ ệ n n đ đ ó ó . . – – Đ Đ ể ể hander hander s s ự ự ki ki ệ ệ n n trong trong Windows Form Windows Form ho ho ặ ặ c c trong trong Web Form: Web Form: Khai Khai b b á á o o component ( component ( v v í í d d ụ ụ button) button) Khai Khai b b á á o o h h à à m m x x ử ử lý lý s s ự ự ki ki ệ ệ n n G G ắ ắ n n h h à à m m v v à à o o s s ự ự ki ki ệ ệ n n 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 12 12 Generics Generics Generics Generics – – Cho Cho ph ph é é p p class, class, struct struct , interface, method , interface, method s s ử ử d d ụ ụ ng ng ki ki ể ể u u d d ữ ữ li li ệ ệ u u m m à à n n ó ó lưu lưu tr tr ữ ữ như như l l à à tham tham s s ố ố đ đ ầ ầ u u v v à à o o . . – – Kh Kh á á i i ni ni ệ ệ m m gi gi ố ố ng ng như như template template c c ủ ủ a a C++. C++. – – Generics Generics xu xu ấ ấ t t hi hi ệ ệ n n nh nh ằ ằ m m m m ụ ụ c c đ đ í í ch ch x x ử ử l l í í ch ch í í nh nh x x á á c c ki ki ể ể u u c c ủ ủ a a d d ữ ữ li li ệ ệ u u . . V V í í d d ụ ụ , , v v ớ ớ i i stack, stack, n n ế ế u u không không c c ó ó generics generics th th ì ì d d ữ ữ li li ệ ệ u u coi coi như như c c á á c c object, object, nên nên đòi đòi h h ỏ ỏ i i ph ph ả ả i i é é p p ki ki ể ể u u khi khi x x ử ử l l í í , , đi đi ề ề u u n n à à y y c c ó ó th th ể ể gây gây l l ỗ ỗ i i run run - - time. time. T T ạ ạ o o v v à à s s ử ử d d ụ ụ ng ng Generics Generics – – Khai Khai b b á á o o gi gi ố ố ng ng như như template template trong trong C++: C++: d d ù ù ng ng c c ặ ặ p p d d ấ ấ u u < > < > – – S S ử ử d d ụ ụ ng ng : : ph ph ả ả i i ch ch ỉ ỉ đ đ ị ị nh nh ch ch í í nh nh x x á á c c ki ki ể ể u u d d ữ ữ li li ệ ệ u u 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 13 13 Generics Generics V V í í d d ụ ụ s s ử ử d d ụ ụ ng ng Generics Generics – – Khai Khai b b á á o o : : public class Stack<ItemType> { private ItemType[] items = new ItemType[100]; public void Push(ItemType data) {…} public ItemType Pop() {…} } –Sử dụng Stack<int> s = new Stack<int>(); s.Push(3); int x = s.Pop(); 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 14 14 Preprocessor Directives Preprocessor Directives #define and # #define and # undef undef #if, # #if, # elif elif , #else, and # , #else, and # endif endif #warning and #error #warning and #error #region and # #region and # endregion endregion #line #line 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 15 15 Memory Management Memory Management C# C# t t ự ự đ đ ộ ộ ng ng qu qu ả ả n n lý lý b b ộ ộ nh nh ớ ớ nh nh ờ ờ v v à à o o b b ộ ộ thu thu gom gom r r á á c c – – B B ộ ộ nh nh ớ ớ ả ả o o trong trong Windows Windows – – Stack Stack v v à à heap heap C C ó ó 2 2 lo lo ạ ạ i i ki ki ể ể u u d d ữ ữ li li ệ ệ u u trong trong C# C# – – Value Data Types: Value Data Types: D D ữ ữ li li ệ ệ u u ch ch ứ ứ a a t t ạ ạ i i nơi nơi n n ó ó đư đư ợ ợ c c c c ấ ấ p p ph ph á á t t v v ù ù ng ng nh nh ớ ớ C C á á c c ki ki ể ể u u s s ố ố , , bool bool , char, date, , char, date, c c á á c c c c ấ ấ u u tr tr ú ú c c , , c c á á c c ki ki ể ể u u li li ệ ệ t t kê kê – – Reference Data Types: Reference Data Types: Ch Ch ứ ứ a a m m ộ ộ t t con con tr tr ỏ ỏ tr tr ỏ ỏ t t ớ ớ i i nơi nơi c c ấ ấ t t gi gi ữ ữ d d ữ ữ li li ệ ệ u u Bao Bao g g ồ ồ m m ki ki ể ể u u string, string, m m ả ả ng ng , class, delegate , class, delegate . template c c ủ ủ a a C+ +. C+ +. – – Generics Generics xu xu ấ ấ t t hi hi ệ ệ n n nh nh ằ ằ m m m m ụ ụ c c đ đ í í ch ch x x ử ử l l í í ch ch í í nh nh x x á á c c ki ki ể ể u u c c ủ ủ a a d d ữ ữ li li ệ ệ u u date, c c á á c c c c ấ ấ u u tr tr ú ú c c , , c c á á c c ki ki ể ể u u li li ệ ệ t t kê kê – – Reference Data Types: Reference Data Types: Ch Ch ứ ứ a a m m ộ ộ t t con con tr tr ỏ ỏ tr tr ỏ ỏ t t ớ ớ i i nơi nơi c c ấ ấ t t gi gi ữ ữ d d ữ ữ li li ệ ệ u u Bao Bao g g ồ ồ m m ki ki ể ể u u string,. Types: D D ữ ữ li li ệ ệ u u ch ch ứ ứ a a t t ạ ạ i i nơi nơi n n ó ó đư đư ợ ợ c c c c ấ ấ p p ph ph á á t t v v ù ù ng ng nh nh ớ ớ C C á á c c ki ki ể ể u u s s ố ố , , bool bool , char, date, , char, date, c c á á c c c c ấ ấ u u tr tr ú ú c c ,