Giáo trình Ngôn ngữ lập trình C# - pdf 18

Download miễn phí Giáo trình Ngôn ngữ lập trình C#



Mục Lục
1.Microsoft.NET. 10
Tình hình trước khiMS.NET ra đời . 10
Nguồn gốccủa .NET. 12
Microsoft.NET. 12
Tổngquan. 12
Kiến trúc .NETFramework. 13
CommonLanguageRuntime. 15
Thưviện .NET Framework. 16
Phát triển ứng dụngclient. 16
Biên dịch và MSIL. 17
Ngônngữ C#. 18
2.Ngôn ngữC#. 20
Tại sao phải sử dụng ngônngữ C#.20
C#là ngôn ngữđơngiản. 20
C#là ngôn ngữhiện đại. 21
C#là ngôn ngữhướngđối tượng. 21
C#là ngôn ngữmạnhmẽ. 22
C#là ngôn ngữíttừ khóa.22
C#là ngôn ngữmodulehóa. 22
C#sẽ là ngôn ngữ phổ biến. 22
Ngônngữ C#vớingônngữ khác. 23
Các bước chuẩn bị cho chương trình. 24
Chương trình C# đơn giản. 25
Phát triểnchương trình minh họa. 31
Câu hỏi & bài tập. 35
3.Nềntảng ngônngữ C#. 39
Kiểu dữ liệu.40
Kiểu dữ liệu xâydựngsẵn. 41
Chọnkiểu dữ liệu. 42
Chuyểnđổi kiểu dữ liệu. 43
Biến và hằng. 44
Gán giátrịxác định cho biến. 45
Hằng. 46
Kiểu liệt kê. 47
2
NgônNgữ Lập Trình C#
Kiểu chuỗikýtự. 50
Định danh. 50
Biểu thức. 50
Khoảngtrắng. 51
Câu lệnh. 51
Phân nhánh khôngcó điều kiện. 52
Phân nhánh có điều kiện. 53
Câu lệnh lặp. 60
Toántử. 68
Namespace. 76
Các chỉ dẫn biên dịch. 80
Câu hỏi & bài tập. 82
4.Xây dựnglớp - Đốitượng.87
Định nghĩa lớp. 88
Thuộc tính truycập. 91
Thamsố của phươngthức. 92
Tạo đối tượng. 93
Bộkhởidựng.93
Khởi tạo biến thành viên. 96
Bộkhởidựngsao chép. 98
Từkhóa this. 99
Sử dụngcác thành viên static. 100
Gọi phươngthứcstatic. 101
Sửdụngbộ khởi dựngstatic. 101
Sửdụngbộ khởi dựngprivate. 102
Sửdụngthuộctínhstatic.102
Hủyđối tượng. 104
Truyền tham số. 107
Nạp chồng cách. 112
Đónggói dữ liệu với thuộc tính. 116
Thuộc tính chỉ đọc. 119
Câu hỏi & bài tập. 121
5.Kế thừa– Đahình. 125
Đặc biệt hóa và tổng quát hóa. 126
Sự kếthừa. 129
Thực thi kế thừa. 129
Gọi phươngthứckhởi dựngcủa lớp cơ sở.131
Gọi phươngthứccủa lớp cơ sở. 132
3
NgônNgữ Lập Trình C#
Điều khiển truyxuất. 132
Đa hình. 133
Kiểu đa hình. 133
cách đahình. 133
Từkhóa new và override. 137
Lớptrừutượng. 139
Gốccủa tất cảcáclớp- lớp Object. 142
Boxing và Unboxing dữ liệu. 144
Boxing dữ liệu ngầmđịnh. 144
Unboxing phải thực hiện tườngminh. 145
Các lớp lồng nhau. 147
Câu hỏi & bài tập. 149
6.Nạp chồng toán tử. 153
Sử dụngtừ khóa operator. 153
Hỗtrợ ngônngữ .NET khác. 154
Sử dụngtoán tử. 154
Toántửso sánh bằng. 156
Toántửchuyển đổi.157
Câu hỏi & bài tập. 163
7.Cấu trúc. 165
Định nghĩa mộtcấu trúc. 165
Tạo cấu trúc.168
Cấu trúclàmộtkiểu giátrị. 168
Gọi bộ khởidựngmặc định. 169
Tạo cấu trúc khônggọi new. 170
Câu hỏi & bài tập. 172
8.Thựcthigiaodiện. 176
Thực thi giao diện. 177
Thực thi nhiều giao diện. 180
Mở rộnggiaodiện. 181
Kết hợp cácgiaodiện. 181
Truycập cách giao diện. 187
Gán đốitượng cho giao diện. 187
Toán tử is. 188
Toán tử as. 190
Giao diện đốilập vớitrừu tượng. 192
Thực thi phủquyết giao diện. 193
Thực thi giao diện tường minh. 197
4
NgônNgữ Lập Trình C#
Lựachọn thểhiện phươngthức giao diện. 200
Ẩn thành viên. 200
Câu hỏi & bài tập. 207
9.Mảng, chỉmục, vàtậphợp. 211
Mảng. 212
Khai báo mảng. 213
Giá trịmặcđịnh. 214
Truycập cácthành phần trongmảng. 214
Khởi tạo thành phần trongmảng. 216
Sửdụngtừ khóa params.216
Câu lệnh foreach. 218
Mảngđa chiều. 220
Mảngđachiều cùngkích thước. 220
Mảngđachiều cókích thước khác nhau. 224
Chuyểnđổi mảng. 227
Bộ chỉ mục. 232
Bộchỉmụcvà phép gán. 236
Sửdụngkiểu chỉ sốkhác. 237
Giao diện tập hợp. 241
Giao diện IEnumerable. 242
Giao diện ICollection. 246
Danh sáchmảng. 247
Thực thi IComparable. 251
Thực thi IComparer. 254
Hàng đợi. 259
Ngăn xếp. 262
Kiểu từ điển.265
Hastables. 266
Giao diện IDictionary.267
Tập khóavà tậpgiá trị. 269
Giao diện IDictionaryEnumerator . 270
Câu hỏi & bài tập. 271
10.Xử lýchuỗi. 275
Lớpđốitượng string. 276
Tạo mộtchuỗi. 276
Tạo mộtchuỗi dùngcách ToString. 277
Thao táctrên chuỗi.278
Tìmmộtchuỗi con. 285
5
NgônNgữ Lập Trình C#
Chia chuỗi. 286
Thao táctrên chuỗi dùngStringBuilder. 288
Các biểu thức quytắc. 290
Sửdụngbiểu thứcquytắc qua lớp Regex.291
SửdụngRegexđể tìmtập hợp. 294
SửdụngRegexđể gomnhóm. 295
SửdụngCaptureCollection. 298
Câu hỏi & bài tập. 301
11.Cơ chếủyquyềnvàsựkiện. 303
Ủy quyền. 304
Sửdụngủyquyềnxác nhận phươngthứclúcthực thi. 304
Ủyquyềntĩnh. 314
Dùngủyquyềnnhư thuộc tính. 315
Thiết lập thứtự thihành với mảng ủyquyền . 316
Multicasting. 320
Sự kiện. 324
Cơchế publishing-subscribing.324
Sựkiện vàủyquyền. 325
Câu hỏi & bài tập. 333
12.Cáclớpcơ sở .NET. 335
Lớpđốitượng trong .NET Framework . 335
LớpTimer. 337
Lớpvề thư mụcvàhệ thống. 340
LớpMath.342
Lớpthao tác tập tin. 345
Làmviệc với tập tindữ liệu. 351
Câu hỏi & bài tập. 362
13.Xử lýngoại lệ. 364
Phát sinh và bắt giữ ngoại lệ. 365
Câu lệnh throw. 365
Câu lệnh catch. 367
Câu lệnh finally. 373
Những đối tượng ngoại lệ. 375
Tạo riêng các ngoại lệ. 378
Phát sinh lại ngoại lệ. 381
Câu hỏi & bài tập. 385



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

ẽ thực hiện
một điều gì đó. Khi một lớp thực thi một giao diện, thì lớp này báo cho các thành phần client
biết rằng lớp này có hỗ trợ các cách, thuộc tính, sự kiện và các chỉ mục khai báo trong
giao diện.
Một giao diện đưa ra một sự thay thế cho các lớp trừu tượng để tạo ra các sự ràng
buộc giữa những lớp và các thành phần client của nó. Những ràng buộc này được khai báo
bằng cách sử dụng từ khóa interface, từ khóa này khai báo một kiểu dữ liệu tham chiếu để
đóng gói các ràng buộc.
Một giao diện thì giống như một lớp chỉ chứa các cách trừu tượng. Một lớp
trừu tượng được dùng làm lớp cơ sở cho một họ các lớp dẫn xuất từ nó. Trong khi giao diện
là sự trộn lẫn với các cây kế thừa khác.
Thực Thi Giao Diện
176
Ngôn Ngữ Lập Trình C#
Khi một lớp thực thi một giao diện, lớp này phải thực thi tất cả các cách của
giao diện. Đây là một bắt buộc mà các lớp phải thực hiện.
Trong chương này chúng ta sẽ thảo luận cách tạo, thực thi và sử dụng các giao diện.
Ngoài ra chúng ta cũng sẽ bàn tới cách thực thi nhiều giao diện cùng với cách kết hợp và mở
rộng giao diện. Và cuối cùng là các minh họa dùng để kiểm tra khi một lớp thực thi một giao
diện.
Thực thi một giao diện
Cú pháp để định nghĩa một giao diện như sau:
[thuộc tính] [bổ sung truy cập] interface [: danh sách cơ sở]
{
}
Phần thuộc tính chúng ta sẽ đề cập sau. Thành phần bổ sung truy cập bao gồm:
public, private, protected, internal, và protected internal đã được nói đến trong
Chương 4, ý nghĩa tương tự như các bổ sung truy cập của lớp.
Theo sau từ khóa interface là tên của giao diện. Thông thường tên của giao diện
được bắt đầu với từ I hoa (điều này không bắt buộc nhưng việc đặt tên như vậy rất rõ ràng và
dễ hiểu, tránh nhầm lẫn với các thành phần khác). Ví dụ một số giao diện có tên như sau:
IStorable, ICloneable,...
Danh sách cơ sở là danh sách các giao diện mà giao diện này mở rộng, phần này sẽ
được trình bày trong phần thực thi nhiều giao diện của chương. Phần thân của giao diện chính
là phần thực thi giao diện sẽ được trình bày bên dưới.
Giả sử chúng ta muốn tạo một giao diện nhằm mô tả những cách và thuộc tính
của một lớp cần thiết để lưu trữ và truy cập từ một cơ sở dữ liệu hay các thành phần lưu trữ
dữ liệu khác như là một tập tin. Chúng ta quyết định gọi giao diện này là IStorage.
Trong giao diện này chúng ta xác nhận hai cách: Read() và Write(), khai báo
này sẽ được xuất hiện trong phần thân của giao diện như sau:
interface IStorable
{
void Read();
void Write(object);
}
Mục đích của một giao diện là để định nghĩa những khả năng mà chúng ta muốn có
trong một lớp. Ví dụ, chúng ta có thể tạo một lớp tên là Document, lớp này lưu trữ các dữ
liệu trong cơ sở dữ liệu, do đó chúng ta quyết định lớp này này thực thi giao diện IStorable.
Để làm được điều này, chúng ta sử dụng cú pháp giống như việc tạo một lớp mới
Document được thừa kế từ IStorable bằng dùng dấu hai chấm (:) và theo sau là tên giao diện:
Thực Thi Giao Diện
177
Ngôn Ngữ Lập Trình C#
public class Document : IStorable
{
public void Read()
{
....
}
public void Write()
{
....
}
}
Bây giờ trách nhiệm của chúng ta, với vai trò là người xây dựng lớp Document phải
cung cấp một thực thi có ý nghĩa thực sự cho những cách của giao diện IStorable.
Chúng ta phải thực thi tất cả các cách của giao diện, nếu không trình biên dịch sẽ báo
một lỗi. Sau đây là đoạn chương trình minh họa việc xây dựng lớp Document thực thi giao
diện IStorable.
 Ví dụ 8.1: Sử dụng một giao diện.
-----------------------------------------------------------------------------
using System;
// khai báo giao diện
interface IStorable
{
// giao diện không khai báo bổ sung truy cập
// cách là public và không thực thi
void Read();
void Write(object obj);
int Status
{
get;
set;
}
}
// tạo một lớp thực thi giao diện IStorable
public class Document : IStorable
{
public Document( string s)
{
Console.WriteLine(“Creating document with: {0}”, s);
Thực Thi Giao Diện
178
Ngôn Ngữ Lập Trình C#
}
// thực thi cách Read()
public void Read()
{
Console.WriteLine(“Implement the Read Method for IStorable”);
}
// thực thi cách Write
public void Write( object o)
{
Console.WriteLine(“Impleting the Write Method for IStorable”);
}
// thực thi thuộc tính
public int Status
{
get
{
return status;
}
set
{
status = value;
}
}
// lưu trữ giá trị thuộc tính
private int status = 0;
}
public class Tester
{
static void Main()
{
// truy cập cách trong đối tượng Document
Document doc = new Document(“Test Document”);
doc.Status = -1;
doc.Read();
Console.WriteLine(“Document Status: {0}”, doc.Status);
// gán cho một giao diện và sử dụng giao diện
IStorable isDoc = (IStorable) doc;
isDoc.Status = 0;
Thực Thi Giao Diện
179
Ngôn Ngữ Lập Trình C#
isDoc.Read();
Console.WriteLine(“IStorable Status: {0}”, isDoc.Status);
}
}
-----------------------------------------------------------------------------
 Kết quả:
Creating document with: Test Document
Implementing the Read Method for IStorable
Document Status: -1
Implementing the Read Method for IStorable
IStorable Status: 0
-----------------------------------------------------------------------------
Ví dụ 8.1 định nghĩa một giao diện IStorable với hai cách Read(), Write() và một
thuộc tính tên là Status có kiểu là số nguyên.. Lưu ý rằng trong phần khai báo thuộc tính
không có phần thực thi cho get() và set() mà chỉ đơn giản là khai báo có hành vi là get() và
set():
int Status { get; set;}
Ngoài ra phần định nghĩa các cách của giao diện không có phần bổ sung truy cập (ví
dụ như: public, protected, internal, private). Việc cung cấp các bổ sung truy cập sẽ tạo ra
một lỗi. Những cách của giao diện được ngầm định là public vì giao diện là những
ràng buộc được sử dụng bởi những lớp khác. Chúng ta không thể tạo một thể hiện của giao
diện, thay vào đó chúng ta sẽ tạo thể hiện của lớp có thực thi giao diện.
Một lớp thực thi giao diện phải đáp ứng đầy đủ và chính xác các ràng buộc đã khai báo trong
giao diện. Lớp Document phải cung cấp cả hai cách Read() và Write() cùng với
thuộc tính Status. Tuy nhiên cách thực hiện những yêu cầu này hoàn toàn phụ thuộc vào lớp
Document. Mặc dù IStorage chỉ ra rằng lớp Document phải có một thuộc tính là Status
nhưng nó không biết hay cũng không quan tâm đến việc lớp Document lưu trữ trạng thái thật
sự của các biến thành viên, hay việc tìm kiếm trong cơ sở dữ liệu. Những chi tiết này phụ
thuộc vào phần thực thi của lớp.
Thực thi nhiều giao diện
Trong ngôn ngữ C# cho phép chúng ta thực thi nhiều hơn một giao diện. Ví dụ, nếu lớp
Document có thể được lưu trữ và dữ liệu cũng được nén. Chúng ta có thể chọn thực thi cả hai
giao diện IStorable và ICompressible. Như vậy chúng ta phải thay đổi phần khai báo trong
danh sách cơ sở để chỉ ra rằng cả hai giao diện điều được thực thi, sử dụng dấu phẩy (,) để
phân cách giữa hai giao diện:
public class Document : IStorable, ICompressible
Thực Thi Giao Diện
180
Ngôn Ngữ Lập Trình C#
Do đó Document cũng phải thực thi những cách được xác nhận trong giao diện
ICompressible:
public void Compress()
{
Console.WriteLine(“Implementing the Compress Method”);...
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status