Bài giảng ngôn ngữ C#: Bài 6 - Chử Đức Hoàng
lượt xem 2
download
"Bài giảng ngôn ngữ C# - Bài 6: Các lớp cơ sở trong C#" với các kiến thức các lớp nền tảng định sẵn trong ngôn ngữ lập trình C#; ý nghĩa của các lớp cơ sở, cách chuyển đổi kiểu dữ liệu; xây dựng một chương trình đơn giản sử dụng một số lớp thư viên cơ sở trong C#.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng ngôn ngữ C#: Bài 6 - Chử Đức Hoàng
- BÀI 6 CÁC LỚP CƠ SỞ TRONG C# GV. Chử Đức Hoàng 1 v1.0011106203
- TÌNH HUỐNG DẪN NHẬP • Việc xây dựng phần mềm quản lý học viên của trường Đại học Quốc gia gồm nhiều phần công việc cũng như nhiều thao tác mà cần đến các công cụ mạnh mẽ nền tảng của ngôn ngữ lập trình. • Việc xử lý các dữ liệu học viên và cao hơn là xử lý tập các thông tin để quản lý các đối tượng trong thực tế là các học viên đã được mã hoá trong các chương trước sẽ thực hiện sử dụng các công cụ cơ sở nền tảng mà ngôn ngữ C# cung cấp. Các lớp cơ sở trong C# cung cấp những công cụ mạnh mẽ như thế nào để thực hiện các công việc trong chương trình phần mềm sử dụng C#? 2 v1.0011106203
- MỤC TIÊU Trình bày các lớp nền tảng định sẵn trong ngôn ngữ lập trình C#. Trình bày ý nghĩa của các lớp cơ sở, cách chuyển đổi kiểu dữ liệu. Xây dựng một chương trình đơn giản sử dụng một số lớp thư viên cơ sở trong C#. 3 v1.0011106203
- NỘI DUNG 1 1.1. Lớp đối tượng(object) 2 1.2. Lớp xâu kí tự và biểu thức quy tắc 3 1.3. Nhóm đối tượng (Collections) 4 v1.0011106203
- 1.1. LỚP ĐỐI TƯỢNG - SYSTEM OBJECT • Trong C#, các lớp kế thừa nhau tạo thành cây phân cấp, và lớp system.object là gốc của tất cả các lớp. • Tất cả các lớp đều được kế thừa các phương thức và thuộc tính của lớp system.object. • Nếu không khai báo thì nó vẫn được kế thừa bằng cách ngầm định. • Có thể thực hiện overload một số phương thức lớp system.object trong lớp con. Lớp gốc của tất cả các lớp 5 v1.0011106203
- 1.1. LỚP ĐỐI TƯỢNG - SYSTEM OBJECT (tiếp theo) Bí danh • C# cung cấp một bí danh để thuận lợi cho việc sử dụng lớp đối tượng, có thể dùng một trong hai cách sau: object a; System.Object b; • Có thể sử dụng lớp object để khai báo đối tượng. Đối tượng này chỉ được sử dụng các thuộc tính và phương thức của lớp object. 1. class Person 7. object o = new Person(); 2. { 8. o.Name = “Trung"; 3. public string Name; 4. public int Age; 5. ... Lỗi do Name không phải 6. } Thành phần của lớp object 6 v1.0011106203
- 1.1. LỚP ĐỐI TƯỢNG - SYSTEM OBJECT (tiếp theo) Các phương thức của lớp object class Object { public Type GetType () public virtual string ToString () public virtual int GetHashCode () public virtual bool Equals (object o) public static bool Equals (object a, object b) public static bool ReferenceEquals(object a, object b) protected void Finalize () protected object MemberwiseClone() } 7 v1.0011106203
- 1.1. LỚP ĐỐI TƯỢNG - SYSTEM OBJECT (tiếp theo) GetType() • Phương thức này trả về kiểu của đối tượng. Person p = new Person(“Trung", 32); Type t = p.GetType(); • Đối tượng kiểu Type này có thể cung cấp một số thông tin mở rộng về lớp mà đối tượng là thành viên. Các phương thức cơ bản của lớp Type: public string FullName { get; } public bool IsAbstract { get; } public bool IsClass { get; } public bool IsPrimitive { get; } public bool IsInterface { get; } public Type BaseType { get; } public ConstructorInfo[] GetConstructors() public FieldInfo [] GetFields () public MethodInfo [] GetMethods () public Type [] GetInterfaces () 8 v1.0011106203
- 1.1. LỚP ĐỐI TƯỢNG - SYSTEM OBJECT (tiếp theo) ToString() • Đây là phương thức trả về chuỗi thể hiện lớp hiện hành và không có tham số. Được dùng khi muốn lấy nội dung của một đối tượng. 9. Person p = new Person(“Trung", 32); 10. string s = p.ToString(); • Gọi tường minh thực hiện chuyển kiểu dữ liệu khác sang kiểu string: 11. int age = 32; 12. string s = age.ToString(); • Gọi ngầm thực hiện chuyển kiểu dữ liệu khác sang kiểu string: 13. int age = 32; 14. string s = “Lan" + age; 9 v1.0011106203
- 1.1. LỚP ĐỐI TƯỢNG - SYSTEM OBJECT (tiếp theo) Overide phương thức ToString() Phương thức này có thể thực hiện override để đưa ra nhiều thông tin về đối tượng: 15. class Person 16. { 17. public string Name; 18. public int Age; 19. public override string ToString() 20. { 21. return Name + " " + Age; 22. } 23. ... 24. } 10 v1.0011106203
- 1.1. LỚP ĐỐI TƯỢNG - SYSTEM OBJECT (tiếp theo) Gọi tự động ToString() Đôi khi phương thức ToString() được gọi tự động trong một số trường hợp: Khi sử dụng đối tượng 25. Person p = new Person(“Trung", 32); trong chuỗi ký tự 26. string s = "Hello " + p; 27. Console.WriteLine(p); Khi sử dụng đối tượng trong phương thức WriteLine() 11 v1.0011106203
- CÂU HỎI THẢO LUẬN Có hai hình thức gọi tường minh và gọi ngầm. Trong quá trình lập trình thì người lập trình nên sử dụng kiểu lập trình nào? 12 v1.0011106203
- PROPERTIES On passing, 'Finish' button: Goes to Next Slide On failing, 'Finish' button: Goes to Next Slide Allow user to leave quiz: At any time User may view slides after quiz: At any time User may attempt quiz: Unlimited times
- 1.2. LỚP XÂU KÝ TỰ VÀ BIỂU THỨC CHÍNH TẮC 14 v1.0011106203
- 1.2.1. LỚP XÂU KÝ TỰ • Là lớp rất mạnh và linh hoạt. • C# có từ khoá riêng và kết hợp với cú pháp để thao tác trong chuỗi như: nối chuỗi, so sánh chuỗi, … • Lớp xâu ký tự thực hiện bởi hai lớp: Lớp “System.String” để biểu diễn chuỗi ký tự cố định. Lớp “System.Text.StringBuilder” để thao tác trong trường hợp chuỗi thay đổi. Lớp system String • FCL cung cấp lớp String trong namespace system. namespace System { public sealed class String:IComparable, ICloneble, IConvertible { ... } } • Không cho phép lớp khác kế thừa. • Lớp này cũng thực thi ba giao diện hệ thống là IComparable, ICloneable, và Iconvertible. • Các giao diện này cho phép lớp System.String chuyển đổi với những lớp khác trong hệ thống .NET. 15 v1.0011106203
- 1.2.1. LỚP XÂU KÝ TỰ (tiếp theo) Tạo chuỗi • Hai cách khai báo sau là tương đương nhau: 28. string s; 29. System.String t; • Cách phổ biến nhất để tạo ra một chuỗi là gán cho một chuỗi trích dẫn tức là chuỗi nằm trong dấu ngoặc kép, kiểu chuỗi này cũng được biết như là một chuỗi hằng, khai báo như sau: 30. string st = “Day la chuoi hang”; • Những chuỗi trích dẫn có thể được thêm các ký tự escape, như là “\n” hay “\t”, ký tự này bắt đầu với dầu chéo ngược (“\”), các ký tự này được dùng để chỉ ra rằng tại vị trí đó xuống dòng hay tab được xuất hiện. Bởi vì dấu gạch chéo ngược này cũng được dùng trong vài cú pháp dòng lệnh, như là địa chỉ URLs hay đường dẫn thư mục, do đó trong chuỗi trích dẫn dấu chéo ngược này phải được đặt trước dấu chéo ngược khác, tức là dùng hai dấu chéo ngược trong trường hợp này. 16 v1.0011106203
- 1.2.1. LỚP XÂU KÝ TỰ (tiếp theo) • Chuỗi cũng có thể được tạo bằng cách sử dụng chuỗi cố định hay nguyên văn (verbatim), tức là các ký tự trong chuỗi được giữ nguyên không thay đổi. Chuỗi này được bắt đầu với biểu tượng @. Biểu tượng này bảo với hàm khởi dựng của lớp String rằng chuỗi theo sau là nguyên văn, thậm chí nó chứa nhiều dòng hoặc bao gồm những ký tự escape. Trong chuỗi nguyên văn, ký tự chéo ngược và những ký tự sau nó đơn giản là những ký tự được thêm vào chuỗi. Do vậy, ta có 2 định nghĩa chuỗi sau là tương đương với nhau: 31. string literal1 = “\\\\MyDocs\\CSharp\\QuanlyhocvienC#.cs”; 32. string verbatim1 = @”\\MyDocs\CSharp\QuanlyhocvienC#.cs”; • Trong chuỗi thứ nhất, là một chuỗi bình thường được sử dụng, do đó dấu ký tự chéo là ký tự escape, nên nó phải được đặt trước một ký tự chéo ngược thứ hai. Trong khai báo thứ hai chuỗi nguyên văn được sử dụng, nên không cần phải thêm ký tự chéo ngược. Một ví dụ thứ hai minh họa việc dùng chuỗi nguyên văn: 33. string literal2 = “Dong mot \n dong hai”; 34. string verbatim2 = @”Dong mot dong hai”; 17 v1.0011106203
- 1.2.1. LỚP XÂU KÝ TỰ (tiếp theo) Tạo đối tượng chuỗi Sử dụng từ khoá “new” để tạo đối tượng. Có thể sử dụng ký tự hoặc mảng ký tự làm tham số: 35. char[] t = new char[5] { 'h', 'e', 'l', 'l', 'o' }; 36. string a = new string(t); // a = hello 37. string b = new string(t, 0, 2);//b=he 38. string c = new string('z', 3);//c=zzz 39. string s = "hello";//s=hello -> cách khai báo tắt Text = hello 18 v1.0011106203
- 1.2.1. LỚP XÂU KÝ TỰ (tiếp theo) Một số phương thức của lớp String • Empty Trường public static thể hiện một chuỗi rỗng. • Compare() Phương thức public static để so sánh hai chuỗi. • CompareOrdinal() Phương thức public static để so sánh hai chuỗi không quan tâm đến thứ tự. • Concat() Phương thức public static để tạo chuỗi mới từ một hay nhiều chuỗi. • Copy() Phương thức public static tạo ra một chuỗi mới bằng sao từ chuỗi khác. • Equal() Phương thức public static kiểm tra xem hai chuỗi có cùng giá trị hay không. • Join() Phương thức public static kết nối các chuỗi xác định giữa mỗi thành phần của mảng chuỗi. • Length() Chiều dài của chuỗi. • CompareTo() So sánh hai chuỗi. • CopyTo() Sao chép một số các ký tự xác định đến một mảng ký tự Unicode. • EndsWidth() Chỉ ra vị trí của chuỗi xác định phù hợp với chuỗi đưa ra. • Insert() Trả về chuỗi mới đa được chèn một chuỗi xác định. • PadLeft() Canh lề phải những ký tự trong chuỗi, chèn vào bên trái khoảng trắng hay các ký tự xác định. • PadRight() Canh lề trái những ký tự trong chuỗi, chèn vào bên phải khoảng trắng hay các ký tự xác định. v1.0011106203 19
- 1.2.1. LỚP XÂU KÝ TỰ (tiếp theo) Lớp StringBuilder • FCL cung cấp lớp StringBuilder trong không gian tên System.Text để tạo chuỗi ký tự có thể thay đổi: 40. namespace System.Text 41. { public sealed class StringBuilder{...} } • Thuận lợi khi muốn thay đổi: 42. StringBuilder text = new StringBuilder(); 43. text.Append("hello"); 44. text.Remove(12, 4); 45. text.Insert(12, "/bode"); 46. text[16] = 'y'; 20 v1.0011106203
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Ngôn ngữ C#
54 p | 1412 | 73
-
Bài giảng Ngôn ngữ lập trình C++: Chương 1 - Trần Minh Châu
17 p | 250 | 54
-
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 - 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++ (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ữ C#: Chương 1 - Trần Văn Tèo
13 p | 121 | 6
-
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ữ C#: Chương 2 - Trần Văn Tèo
16 p | 81 | 5
-
Bài giảng Ngôn ngữ C# (233 tr)
233 p | 58 | 5
-
Bài giảng ngôn ngữ C#: Bài 1 - Chử Đức Hoàng
36 p | 31 | 4
-
Bài giảng Ngôn ngữ C#: Chương 3 - Trần Văn Tèo
21 p | 85 | 4
-
Bài giảng ngôn ngữ C#: Bài 2 - Chử Đức Hoàng
37 p | 21 | 3
-
Bài giảng ngôn ngữ C#: Bài 3 - Chử Đức Hoàng
34 p | 37 | 3
-
Bài giảng ngôn ngữ C#: Bài 4 - Chử Đức Hoàng
37 p | 20 | 3
-
Bài giảng ngôn ngữ C#: Bài 5 - Chử Đức Hoàng
34 p | 29 | 3
-
Bài giảng ngôn ngữ C#: Bài 7 - Chử Đức Hoàng
28 p | 33 | 2
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