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 Group of Objects Group of Objects Group of Objects Group of Objects l l à à c c á á c c l l ớ ớ p p trong trong đ đ ó ó cho cho ph ph é é p p qu qu ả ả n n lý lý m m ộ ộ t t t t ậ ậ p p h h ợ ợ p p c c á á c c đ đ ố ố i i tư tư ợ ợ ng ng c c ó ó c c ù ù ng ng ki ki ể ể u u . . – – ArrayList ArrayList : : tương tương t t ự ự như như m m ả ả ng ng , , nhưng nhưng c c ó ó nhi nhi ề ề u u t t í í nh nh năng năng ưu ưu vi vi ệ ệ t t : : cho cho ph ph é é p p thêm thêm , , ch ch è è n n , , xo xo á á , , s s ắ ắ p p x x ế ế p p , , t t ì ì m m ki ki ế ế m m nh nh ị ị phân phân , , … … – – Collection: Collection: đ đ ố ố i i tư tư ợ ợ ng ng t t ậ ậ p p h h ợ ợ p p , , trên trên đ đ ó ó c c ó ó c c à à i i đ đ ặ ặ t t giao giao ti ti ế ế p p IEnumerable IEnumerable cho cho ph ph é é p p duy duy ệ ệ t t t t ừ ừ ng ng ph ph ầ ầ n n t t ử ử trong trong t t ậ ậ p p h h ợ ợ p p . . Stack: Stack: Cung Cung c c ấ ấ p p cơ cơ ch ch ế ế FILO, FILO, c c ó ó 2 2 phương phương th th ứ ứ c c đ đ ặ ặ c c bi bi ệ ệ t t l l à à Push() Push() v v à à Pop() Pop() Queue: Queue: cơ cơ ch ch ế ế FIFO, FIFO, c c ó ó 2 2 phương phương th th ứ ứ c c đ đ ặ ặ c c bi bi ệ ệ t t l l à à Enqueue Enqueue () () v v à à Dequeue Dequeue () () – – Dictionary: Dictionary: đ đ ố ố i i tư tư ợ ợ ng ng t t ừ ừ đi đi ể ể n n , , cung cung c c ấ ấ p p cơ cơ ch ch ế ế t t ì ì m m ki ki ế ế m m đ đ ố ố i i tư tư ợ ợ ng ng thông thông qua qua kho kho á á Hashtable Hashtable : : b b ả ả ng ng băm băm , , m m ỗ ỗ i i đ đ ố ố i i tư tư ợ ợ ng ng s s ẽ ẽ đư đư ợ ợ c c đ đ ạ ạ i i di di ệ ệ n n b b ở ở i i m m ộ ộ t t gi gi á á tr tr ị ị băm băm , , g g ọ ọ i i l l à à kho kho á á . . T T á á c c d d ụ ụ ng ng tăng tăng t t ố ố c c trong trong c c á á c c thao thao t t á á c c t t ì ì m m ki ki ế ế m m . . 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 Generics Generics Gererics Gererics cung cung c c ấ ấ p p c c á á c c l l ớ ớ p p cho cho ph ph é é p p s s ử ử l l í í m m ộ ộ t t t t ậ ậ p p c c á á c c đ đ ố ố i i tư tư ợ ợ ng ng v v ớ ớ i i ki ki ể ể u u c c ủ ủ a a đ đ ố ố i i tư tư ợ ợ ng ng như như l l à à tham tham s s ố ố đ đ ầ ầ u u v v à à o o . . – – List<T>: List<T>: cho cho ph ph é é p p thao thao t t á á c c v v à à x x ử ử l l í í m m ộ ộ t t danh danh s s á á ch ch c c á á c c đ đ ố ố i i tư tư ợ ợ ng ng c c ó ó ki ki ể ể u u T; T; – – Stack<T>: Stack<T>: cung cung c c ấ ấ p p cơ cơ ch ch ế ế FILO FILO v v ớ ớ i i ki ki ể ể u u d d ữ ữ li li ệ ệ u u T; T; – – Queue<T>: Queue<T>: cung cung c c ấ ấ p p cơ cơ ch ch ế ế FIFO FIFO v v ớ ớ i i ki ki ể ể u u d d ữ ữ li li ệ ệ u u T; T; – – LinkedList LinkedList <T>: <T>: cung cung c c ấ ấ p p m m ộ ộ t t danh danh s s á á ch ch liên liên k k ế ế t t đôi đôi x x ử ử l l í í c c á á c c đ đ ố ố i i tư tư ợ ợ ng ng c c ó ó ki ki ể ể u u T; T; – – Dictionary<K,T>: Dictionary<K,T>: cung cung c c ấ ấ p p m m ộ ộ t t t t ừ ừ đi đi ể ể n n v v ớ ớ i i ki ki ể ể u u d d ữ ữ li li ệ ệ u u l l à à T, T, ki ki ể ể u u kh kh ó ó a a l l à à K. K. 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 16 16 Reflection Reflection Reflection Reflection l l à à thu thu ậ ậ t t ng ng ữ ữ ch ch ỉ ỉ c c á á c c l l ớ ớ p p trong trong .NET .NET cho cho ph ph é é p p ch ch ú ú ng ng ta ta c c ó ó th th ể ể đ đ ọ ọ c c đư đư ợ ợ c c thông thông tin tin v v ề ề c c á á c c assembly. assembly. Ch Ch ú ú ng ng n n ằ ằ m m trong trong namespace namespace System.Reflection System.Reflection – – Type: Type: cung cung c c ấ ấ p p thông thông tin tin v v ề ề ki ki ể ể u u c c ủ ủ a a m m ộ ộ t t đ đ ố ố i i tư tư ợ ợ ng ng . . Bao Bao g g ồ ồ m m c c á á c c thông thông tin tin như như tên tên ki ki ể ể u u , , tên tên đ đ ầ ầ y y đ đ ủ ủ ( ( g g ồ ồ m m c c ả ả namespace), namespace), tên tên l l ớ ớ p p cơ cơ s s ở ở , , … … Ngo Ngo à à i i ra ra , , c c ó ó th th ể ể l l ấ ấ y y đư đư ợ ợ c c c c á á c c thông thông tin tin kh kh á á c c như như c c á á c c phương phương th th ứ ứ c c , , c c á á c c trư trư ờ ờ ng ng , , c c á á c c s s ự ự ki ki ệ ệ n n , , c c á á c c giao giao ti ti ế ế p p , , … … – – Assembly: Assembly: ch ch ứ ứ a a thông thông tin tin v v ề ề assembly, assembly, bao bao g g ồ ồ m m c c á á c c thông thông tin tin như như tên tên assembly, assembly, tên tên công công ty ty , , phiên phiên b b ả ả 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 17 17 Threading Threading C C á á c c h h ệ ệ th th ố ố ng ng th th ự ự c c đ đ ề ề u u l l à à h h ệ ệ đa đa ti ti ế ế n n tr tr ì ì nh nh : : – – C C á á c c ứ ứ ng ng d d ụ ụ ng ng trong trong Windows Windows ch ch ạ ạ y y song song song song . . – – V V ớ ớ i i m m ộ ộ t t công công vi vi ệ ệ c c , , thông thông thư thư ờ ờ ng ng s s ẽ ẽ g g ồ ồ m m nhi nhi ề ề u u công công vi vi ệ ệ c c nh nh ỏ ỏ ch ch ạ ạ y y song song song song . . – – .NET .NET h h ỗ ỗ tr tr ợ ợ l l ậ ậ p p tr tr ì ì nh nh song song song song d d ự ự a a v v à à o o thread. thread. Đ Đ ể ể t t ạ ạ o o nhi nhi ề ề u u ti ti ế ế n n tr tr ì ì nh nh ch ch ạ ạ y y song song song song , , ch ch ú ú ng ng ta ta s s ẽ ẽ t t ạ ạ o o ra ra c c á á c c Thread Thread – – C C á á c c thu thu ộ ộ c c t t í í nh nh : : Name: Name: tên tên c c ủ ủ a a thread thread Priority: Priority: m m ứ ứ c c đ đ ộ ộ ưu ưu tiên tiên c c ủ ủ a a thread thread – – C C á á c c phương phương th th ứ ứ c c : : Start(): Start(): kh kh ở ở i i đ đ ộ ộ ng ng thread thread Suspend(): Suspend(): t t ạ ạ m m ngưng ngưng thread thread Resume(): Resume(): k k í í ch ch ho ho ạ ạ t t l l ạ ạ i i thread thread đang đang t t ạ ạ m m ngưng ngưng Abort(): Abort(): hu hu ỷ ỷ ( ( ng ng ắ ắ t t gi gi ữ ữ a a ch ch ừ ừ ng ng ) thread ) thread 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 18 18 T T à à i li i li ệ ệ u tham kh u tham kh ả ả o o Professional C#, Second Edition Professional C#, Second Edition http://www.asp.net http://www.asp.net http://www.microsoft.com/net/default.mspx http://www.microsoft.com/net/default.mspx http://www.codeproject.com http://www.codeproject.com Đ Đ ị ị a ch a ch ỉ ỉ download t download t à à i li i li ệ ệ u u http://www.thanglong.edu.vn/nghien http://www.thanglong.edu.vn/nghien - - cuu cuu - - phat phat - - trien/thang trien/thang - - long/tab.aspx long/tab.aspx Di Di ễ ễ n đ n đ à à n C# & .NET n C# & .NET http://www.thanglong.edu.vn/forum/cmd/0/categ http://www.thanglong.edu.vn/forum/cmd/0/categ ory/hoc ory/hoc - - tap tap - - nghien nghien - - cuu/dot cuu/dot - - net/tab.aspx net/tab.aspx . c c ó ó th th ể ể l l ấ ấ y y đư đư ợ ợ c c c c á á c c thông thông tin tin kh kh á á c c như như c c á á c c phương phương th th ứ ứ c c , , c c á á c c trư trư ờ ờ ng ng , , c c á á c c s s ự ự ki ki ệ ệ n n ,. Minh 16 16 Reflection Reflection Reflection Reflection l l à à thu thu ậ ậ t t ng ng ữ ữ ch ch ỉ ỉ c c á á c c l l ớ ớ p p trong trong .NET .NET cho cho ph ph é é p p ch ch ú ú ng ng ta ta c c ó ó th th ể ể đ đ ọ ọ c c đư đư ợ ợ c c thông thông tin tin v v ề ề c c á á c c assembly cho cho ph ph é é p p thao thao t t á á c c v v à à x x ử ử l l í í m m ộ ộ t t danh danh s s á á ch ch c c á á c c đ đ ố ố i i tư tư ợ ợ ng ng c c ó ó ki ki ể ể u u T; T; – – Stack<T>: Stack<T>: cung cung c c ấ ấ p p c c ch ch ế ế FILO FILO v v ớ ớ i i ki ki ể ể u u d d ữ ữ li li ệ ệ u u T; T; – – Queue<T>: