1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng ngôn ngữ C#: Bài 6 - Chử Đức Hoàng

49 23 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 49
Dung lượng 5,52 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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#.

Trang 1

v1.0011106203 1

BÀI 6 CÁC LỚP CƠ SỞ TRONG C#

GV Chử Đức Hoàng

Trang 2

v1.0011106203 2

TÌNH HUỐNG DẪN NHẬP

để thực hiện các công việc trong chương trình phần mềm sử dụng C#?

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ảngcủ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

Trang 3

v1.0011106203 3

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#

Trang 4

v1.0011106203 4

NỘI DUNG

1.1 Lớp đối tượng(object)1

1.2 Lớp xâu kí tự và biểu thức quy tắc2

1.3 Nhóm đối tượng (Collections)3

Trang 5

Lớp gốc của tất cả các lớp

1.1 LỚP ĐỐI TƯỢNG - SYSTEM OBJECT

Trang 6

v1.0011106203 6

Bí danh

một trong hai cách sau:

 object a;

 System.Object b;

các thuộc tính và phương thức của lớp object

Trang 7

v1.0011106203 7

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()

}

1.1 LỚP ĐỐI TƯỢNG - SYSTEM OBJECT (tiếp theo)

Trang 8

v1.0011106203 8

1.1 LỚP ĐỐI TƯỢNG - SYSTEM OBJECT (tiếp theo)

GetType()

Person p = new Person(“Trung", 32);

Type t = p.GetType();

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 ()

Trang 9

v1.0011106203 9

ToString()

dùng khi muốn lấy nội dung của một đối tượng

14 string s = “Lan" + age;

1.1 LỚP ĐỐI TƯỢNG - SYSTEM OBJECT (tiếp theo)

Trang 10

v1.0011106203 10

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:

18 public int Age;

19 public override string ToString()

Trang 11

v1.0011106203 11

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

trong phương thứcWriteLine()

Khi sử dụng đối tượng

26 string s = "Hello " + p;

27 Console.WriteLine(p);

1.1 LỚP ĐỐI TƯỢNG - SYSTEM OBJECT (tiếp theo)

Trang 12

v1.0011106203 12

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?

Trang 13

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

Trang 14

v1.0011106203 14

1.2 LỚP XÂU KÝ TỰ VÀ BIỂU THỨC CHÍNH TẮC

Trang 15

• 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

Iconvertible

hệ thống NET

Trang 16

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”;

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ằngtạ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àycũng được dùng trong vài cú pháp dòng lệnh, như là địa chỉ URLs hay đường dẫnthư 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ấuchéo ngược khác, tức là dùng hai dấu chéo ngược trong trường hợp này

1.2.1 LỚP XÂU KÝ TỰ (tiếp theo)

Trang 17

v1.0011106203 17

(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ớpString rằng chuỗi theo sau là nguyên văn, thậm chí nó chứa nhiều dòng hoặc baogồ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ĩachuỗi sau là tương đương với nhau:

là ký tự escape, nên nó phải được đặt trước một ký tự chéo ngược thứ hai Trongkhai 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”;

1.2.1 LỚP XÂU KÝ TỰ (tiếp theo)

Trang 18

v1.0011106203 18

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 = <body>hello</body>

Trang 19

v1.0011106203 19

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

đế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ủamảng chuỗi

• 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

Trang 20

41 { public sealed class StringBuilder{ } }

• Thuận lợi khi muốn thay đổi:

42 StringBuilder text = new StringBuilder();

Trang 21

v1.0011106203 21

CÂU HỎI THẢO LUẬN

Đưa ra khai báo đối tượng dữ liệu "person", kiểu dữ liệu là chuỗi, sử dụng từ

khóa "new" ?

Trang 22

v1.0011106203 22

1.2.1 LỚP XÂU KÝ TỰ (tiếp theo)

Đặc điểm khi của StringBuilder

47 StringBuilder sb = new StringBuilder("Hello");

48 StringBuilder sb = new StringBuilder(20);

• Khi bổ sung một đối tượng StringBuilder thì làm thay đổi trên giá trị thật của chuỗi,chứ không phải trên bản sao

Trang 23

v1.0011106203 23

Ví dụ:

 text.Append("<html>");

 text.Append("<body>");

 text.Append("<p>");

 text.Append("hello");

Trang 24

v1.0011106203 24

1.2.1 LỚP XÂU KÝ TỰ (tiếp theo)

Phương thức chính của StringBuilder

khác trong chuỗi hiện thời

Trang 25

v1.0011106203 25

Các biểu thức quy tắc (Regular Expression)

• Biểu thức qui tắc để mô tả và thao tác văn bản

liệu), hay một tập hợp các ký tự

của chuỗi gốc

• string không thể thay đổi được nên không thể thay đổi bởi biểu thức qui tắc

• Ví dụ: áp dụng biểu thức qui tắc cho chuỗi sau:

Mot, hai, ba, Trung Tam Dao Tao CNTT

 Có thể trả về bất cứ hay tất cả danh sách các chuỗi con (Mot, hai, )

 Có thể tạo ra các phiên bản chuỗi được bổ sung của những chuỗi con như:TrUng TAM,

thân nó

1.2.1 LỚP XÂU KÝ TỰ (tiếp theo)

Trang 26

v1.0011106203 26

Các kiểu ký tự trong biểu thức quy tắc

 Ký tự bình thường (literal): những ký tự này mà chúng ta sử dụng để so khớpvới chuỗi ký tự đích

 Metacharacter: là các biểu tượng đặc biệt, có hành động như là các lệnh trong

bộ phân tích (parser) của biểu thức

• Bộ phân tích là một cơ chế có trách nhiệm hiểu được các biểu thức qui tắc

1.2.1 LỚP XÂU KÝ TỰ (tiếp theo)

Trang 27

v1.0011106203 27

Ví dụ biểu thức quy tắc

• Ví dụ tạo một biểu thức qui tắc như sau:

^(From|To|Subject|Date):

“Subject”, và “Date” sao cho những từ này bắt đầu bằng ký tự dòng mới (^) và kếtthúc với dấu hai chấm (:)

kiếm phải bắt đầu từ dòng mới

• Trong biểu thức này các ký tự như “(”,”)”, và “|” là các metacharacter dùng để nhómcác chuỗi ký tự bình thường như “From”, “To”,”Subject”, và “Date” và chỉ ra rằng bất

cứ sự lựa chọn nào trong số đó đều được so khớp đúng

• Ngoài ra ký tự “^” cũng là ký tự metacharacter chỉ ra bắt đầu dòng mới

một dòng mới được theo sau bởi một trong bốn chữ From, To, Subject, Date và theo sau là ký tự dấu hai chấm”.

1.2.1 LỚP XÂU KÝ TỰ (tiếp theo)

Trang 28

v1.0011106203 28

Lớp Regex

biểu thức quy tắc để so khớp, tìm kiếm và thay thế chuỗi

Perl5

chứa tất cả các đối tượng liên quan đến biểu thức quy tắc trong môi trường NET

Khả năng của Regex

.NET cho phép thực hiện việc tìm kiếm một chuỗi một cách lặp đi lặp lại cho đến hếtchuỗi, và kết quả trả về là một tập hợp

nhau theo một quy định nào đó

1.2.1 LỚP XÂU KÝ TỰ (tiếp theo)

Trang 29

v1.0011106203 29

CÂU HỎI THẢO LUẬN

So sánh sự khác nhau giữa dung lượng đối tượng và giá trị của đối tượng?

Trang 30

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

Trang 31

theo từng phần tử.

• Đặc biệt, một collection phải thi hành một interface

(collection) như: add, Remove, count, contains, traverse, sort

Trang 32

v1.0011106203 32

Phần tử trong Array lists

 Có thể lưu trữ bất kì đối tượng nào mà ta muốn trong một Arraylist

 Khi truy nhập đến đối tượng, thì cần ép kiểu chúng trở lại kiểu dữ liệu tươngđương:

 Ví dụ: Vector element1 = (Vector)vectors[1];

 Có thể chèn hoặc bỏ các phần tử vào Arraylist và làm cho tất cả các phần tửtheo sau bị thay đổi tương ứng trong bộ nhớ và có thể tái định vị toàn bộArraylist

 Khi thêm phần tử vào trong Arraylist làm cho số phần tử nhiều hơn kích thướcmảng thì nó sẽ tự động tăng gấp đôi kích thước hiện tại của mảng

1.3 NHÓM CÁC ĐỐI TƯỢNG (tiếp theo)

Trang 34

v1.0011106203 34

Các dịch vụ cơ bản của ArrayList

• public class ArrayList : IList, ICloneable

• int Add (object value)

• void Insert(int index, object value)

• void Clear ()

• bool Contains(object value)

• int IndexOf (object value)

• object this[int index] { get set }

• int Capacity { get set }

Trang 37

v1.0011106203 37

Stack

Stack là vùng nhớ lưu giữ theo kiểu last-in-first-out:

• Ví dụ: tạo stack để lưu thứ tự gọi các phương thức:

Trang 38

v1.0011106203 38

Các dịch vụ của Stack

• Synchronized(): (static) trả về một Stack wrapper được thread-safe

1.3 NHÓM CÁC ĐỐI TƯỢNG (tiếp theo)

Trang 40

v1.0011106203 40

1.3 NHÓM CÁC ĐỐI TƯỢNG (tiếp theo)

Queue

Queue là vùng nhớ lưu giữ theo kiểu first-in-first-out:

Trang 41

v1.0011106203 41

Các dịch vụ của Queue

• Synchronized(): (static) trả về một Queue wrapper được thread-safe

• IsReadOnly: Thuộc tính xác định hàng đợi là chỉ đọc

• Clear(): Xóa tất cả các thành phần trong hàng đợi

1.3 NHÓM CÁC ĐỐI TƯỢNG (tiếp theo)

Trang 43

v1.0011106203 43

Hashtable

• Hashtable là một kiểu từ điển được tối ưu cho việc truy cập được nhanh

• Từ điển là kiểu tập hợp trong đó có hai thành phần chính liên hệ với nhau là khóa

và giá trị

định nghĩa từ (giá trị)

• Lưu tham chiếu đối tượng theo cả khoá và giá trị

• Sử dụng chỉ số để giúp cho việc truy cập được thuận tiện

1.3 NHÓM CÁC ĐỐI TƯỢNG (tiếp theo)

Trang 44

v1.0011106203 44

Ví dụ Hashtable

//Tạo Hashtabe có tên ages

127 Hashtable ages = new Hashtable();

138 string name = (string)entry.Key;

139 int age = (int) entry.Value;

140

141 }

Liệt kê các mục

Lấy khoá và giá trị

1.3 NHÓM CÁC ĐỐI TƯỢNG (tiếp theo)

Trang 45

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

Trang 46

v1.0011106203 46

trò của lớp ToString

thế nào cũng như sự linh động của sự quản lý này so với các cách quản

lý thông thường khác như mảng

sở để ứng dụng trong việc viết ứng dụng phần mềm sử dụng C#

TÓM LƯỢC CUỐI BÀI

Trang 47

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

Trang 48

Allow user to leave interaction: Anytime

Show ‘Next Slide’ Button: Don't show

Completion Button Label: Next Slide

Trang 49

Allow user to leave interaction: Anytime

Show ‘Next Slide’ Button: Don't show

Completion Button Label: Next Slide

Ngày đăng: 27/02/2021, 09:48

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm