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

Bài giảng Lập trình C#: Phần 1 - ĐH Phạm Văn Đồng

61 39 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 61
Dung lượng 1,18 MB

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

Nội dung

(NB) Với 3 chương đầu tiên Bài giảng Lập trình C#: Phần 1 trình bày nội dung Giới thiệu Microsoft .NET, cơ sở của ngôn ngữ C#, Hướng đối tượng trong C#, Ứng dụng Windows trong C#. Mời các bạn cùng tham khảo để nắm chi tiết nội dung của bài giảng.

Trang 1

TRƯỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG

KHOA CÔNG NGHỆ THÔNG TIN

NGUYỄN VĂN TOÁN

BÀI GIẢNG

LẬP TRÌNH C#

Quảng Ngãi, 2018

Trang 2

TRƯỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG

KHOA CÔNG NGHỆ THÔNG TIN

NGUYỄN VĂN TOÁN

Trang 3

i

LỜI NÓI ĐẦU

Lập trình C# là môn học tìm hiểu các kiến thức cơ bản về lập trình xây dựng ứng dụng bằng ngôn ngữ lập trình C# Nội dung cơ bản của môn học này giới thiệu các kiến thức cơ bản của C#, hướng đối tượng trong C#, các điều khiển hỗ trợ thiết kế giao diện và các điều khiển hỗ trợ truy cập CSDL, in kết quả

Bài giảng được biên soạn và giảng dạy cho sinh viên ngành Công nghệ thông tin với sinh viên đã có kiến thức cơ bản về lập trình, lập trình hướng đối tượng, hệ quản trị cơ

sở dữ liệu Microsoft SQL Server Vì thế, những nội dung liên quan đến các phần kiến thức này trong bài giảng chủ yếu là tóm tắt, nhắc lại

Ngôn ngữ C# hiện đang được cập nhật thường xuyên Qua mỗi phiên bản, mẫu lập trình được thay đổi theo hướng tiện lợi hơn và các công nghệ mới, hiện đại được bổ sung vào Hiện nay, phạm vi kiến thức của ngôn ngữ C# rất rộng Nội dung kiến thức được trình bày trong bài giảng này chỉ mới đề cập ngang phiên bản NET Framework 2.0 Mong rằng, qua bài giảng này, sinh viên có thể nắm bắt được những vấn đề cốt lõi của ngôn ngữ lập trình C# để làm cơ sở cho việc nghiên cứu sâu hơn về ngôn ngữ lập trình này

Bài giảng không sao tránh khỏi những thiếu sót Mong các thầy cô và các bạn sinh viên đóng góp ý kiến để hoàn thiện hơn trong những lần chỉnh sửa sau

Xin chân thành cảm ơn

Quảng Ngãi, tháng 11 năm 2018

Nguyễn Văn Toán

Trang 4

ii

MỤC LỤC

Chương 1: Giới thiệu Microsoft NET, cơ sở của ngôn ngữ C# 1

1.1 Tổng quan Microsoft NET 1

1.1.1 Kiến trúc NET framework 1

1.1.2 Biên dịch và ngôn ngữ trung gian 3

1.2 Giới thiệu ngôn ngữ C# 4

1.2.1 Chương trình đầu tiên 4

1.2.2 Kiểu dữ liệu, biểu thức, câu lệnh 6

1.2.3 Chú thích 12

1.2.4 Các cấu trúc dữ liệu 13

1.3 Câu hỏi và bài tập 16

1.4 Bài mẫu 17

Chương 2: Hướng đối tượng trong C# 20

2.1 Lớp, đối tượng 20

2.1.1 Các thành phần của lớp 21

2.1.2 Phạm vi truy cập của lớp 21

2.1.3 Ví dụ về lớp 22

2.2 Không gian tên, lệnh using 24

2.2.1 Không gian tên 24

2.2.2 Lệnh using 25

2.2.3 Bí danh của không gian tên 25

2.3 Quản lý ngoại lệ 26

2.3.1 Cấu trúc của một ngoại lệ 26

2.3.2 Ném ngoại lệ 27

2.3.3 Bắt ngoại lệ 27

2.4 Một số lớp thông dụng 29

2.4.1 List 29

2.4.2 String 30

2.4.3 StreamReader, StreamWriter 31

2.5 Câu hỏi và bài tập 33

2.6 Bài mẫu 34

Trang 5

iii

Chương 3: Ứng dụng Windows trong C# 39

3.1 Giao diện ứng dụng và các điều khiển thông dụng 39

3.1.1 Giao diện ứng dụng 39

3.1.2 Các điều khiển thông dụng trên Form 43

3.2 Một số hộp thoại thông dụng 46

3.2.1 MessageBox 46

3.2.2 OpenDialog 47

3.3 Menu, ToolStrip 47

3.3.1 Menu 47

3.3.2 ToolStrip 47

3.4 Câu hỏi và bài tập 48

3.5 Bài mẫu 49

Chương 4: Quản lý dữ liệu với Microsoft SQL Server 56

4.1 Các khái niệm về cơ sở dữ liệu trong MS SQL Server 56

4.1.1 Các khái niệm về cơ sở dữ liệu 56

4.1.2 Khái niệm về cơ sở dữ liệu trong MS SQL Server 57

4.2 Ngôn ngữ SQL 57

4.2.1 Các câu lệnh SQL 58

4.2.2 Kiểu dữ liệu 58

4.2.3 Toán tử 60

4.2.4 Một số hàm thường dùng 61

4.2.5 Các câu lệnh SQL thường dùng 62

4.3 Câu hỏi và bài tập 65

4.4 Bài mẫu 65

Chương 5: Truy cập cơ sở dữ liệu với ADO.NET 67

5.1 Mô hình kết nối và truy cập dữ liệu với ADO.NET 67

5.1.1 Mô hình kết nối và truy cập dữ liệu tổng quát 67

5.1.2 Connection 68

5.1.3 Kết nối đến cơ sở dữ liệu 69

5.1.4 Transaction 70

5.2 Mô hình truy cập dữ liệu với Command 71

5.2.1 Command 71

Trang 6

iv

5.2.2 DataReader 72

5.3 Mô hình truy cập dữ liệu nâng cao với cơ sở dữ liệu ảo 73

5.3.1 DataSet 73

5.3.2 DataAdapter 74

5.4 Buộc dữ liệu 75

5.4.1 Mô hình truy cập và hiển thị dữ liệu 75

5.4.2 Buộc dữ liệu 76

5.5 Câu hỏi và bài tập 77

5.6 Bài mẫu 78

Chương 6: Report và đóng gói ứng dụng 90

6.1 Report 90

6.1.1 Tổng quan về Report 90

6.1.2 Tiến trình xây dựng Report 91

6.1.3 Các công cụ hỗ trợ tạo Report 91

6.2 Đóng gói ứng dụng 96

6.2.1 Lợi ích 96

6.2.2 Các thành phần đưa vào gói ứng dụng 96

6.2.3 Setup Project 97

6.3 Câu hỏi và bài tập 97

6.4 Bài mẫu 98

TÀI LIỆU THAM KHẢO 103

Trang 7

Trang 1

Chương 1:

Giới thiệu Microsoft NET, cơ sở của ngôn ngữ C#

Thời lượng: 8 tiết Mục tiêu:

- Biết được tổng quan về Microsoft NET, kiến trúc NET Framework,

- Hiểu được các thành phần cơ bản của C#,

- Viết được các chương trình đơn giản bằng C#

1.1 Tổng quan Microsoft NET

Nền tảng Microsoft NET (.NET) cung cấp tất cả các công cụ và kỹ thuật cần thiết để người dùng có thể xây dựng một ứng dụng trên môi trường internet Trong chương trình học, nền tảng NET được mô tả đơn giản như Hình 1-1

Trung tâm của NET là NET framework và môi trường phát triển (IDE - Integrated Development Environment) Framework cung cấp những gì cần thiết, căn bản (hạ tầng cơ sở) theo một quy ước nhất định để giúp cho việc phát triển ứng dụng IDE là môi trường giúp việc phát triển ứng dụng trở nên dễ dàng và nhanh chóng Nếu không có IDE, chúng ta cũng có thể phát triển được ứng dụng trên NET Tuy nhiên, việc này rất mất thời gian Chúng ta nên sử dụng một IDE nào đó để phát triển ứng dụng

Hình 1-1 Mô tả đơn giản nền tảng NET

1.1.1 Kiến trúc NET framework

.NET framework gồm 2 thành phần chính: khối thực thi ngôn ngữ nền

.NET Framework Common Language Specification

Trang 8

Debug Engine Phát hiện lỗi

Exception Manager Quản lý ngoại lệ

Thread Support Hỗ trợ các lớp, giao diện cho lập trình đa luồng COM Marshaler Chuyển đổi thành phần COM

Base Class Library Support Hỗ trợ thư viện các lớp cơ sở

Thư viện các lớp cơ sở trong CFL:

Collections Danh sách (mảng) động Configuration Cấu hình

Trang 9

Trang 3

Reflection Phản chiếu (dịch ngược) Resources Tài nguyên (file, chuỗi, hình ảnh) Security Bảo mật

Threading Đa luồng Runtime Thực thi thời gian thực

1.1.2 Biên dịch và ngôn ngữ trung gian

a) Các bước thực hiện của chương trình truyền thống:

Các ngôn ngữ trước đây (Pascal, C, C++, Visual Basic) có chương trình dịch và và môi trường thực thi của riêng nó và một chương trình chỉ cần dịch một lần để thực thi

Các bước thực hiện của một chương trình truyền thống như Hình 1-2:

- Bước 1: biên dịch mã nguồn thành mã có thể thực thi

- Bước 2: Thực thi thời gian thực mã có thể thực thi

Hình 1-2 Các bước thực thi một chương trình truyền thống

b) Các bước thực hiện của chương trình NET:

.NET có chương trình dịch và môi trường thực thi cho mọi máy tính đã cài đặt NET Framework Một chương trình trong NET phải được dịch hai lần trước khi được thực thi

Quá trình biên dịch trong NET được thực hiện qua 2 giai giai đoạn như Hình 1-3:

Giai đoạn 1: biên dịch mã nguồn

Bước 1: biên dịch mã nguồn thành mã MSIL (Microsoft Intermediate Language) và siêu dữ liệu

Giai đoạn 2: biên dịch mã MSIL

nguồn Biên dịch Mã có thể thực thi Thực thi Mã nhị phân

Trang 10

Trang 4

Bước 2: từ siêu dữ liệu, CLR biên dịch mã MSIL thành mã có thể thực thi được và thực thi thời gian thực

Hình 1-3 Quá trình biên dịch một chương trình NET

Các chương trình NET được biên dịch 2 lần Kết quả biên dịch của lần thứ nhất chỉ ở dạng mã MSIL Kết quả biên dịch lần thứ hai sẽ là mã máy

Khi thực thi một chương trình NET thì thường lần đầu chậm và lần thứ 2

sẽ tương đối nhanh Khi thực thi lần đầu, chương trình phải được dịch sang mã nhị phân và khi thực hiện phải lưu vào bộ nhớ cache Điều này làm cho quá trình thực hiện bị chậm Khi thực hiện lần thứ hai, chương trình không cần phải dịch lại và dữ liệu đã có trong bộ nhớ cache nên việc thực hiện tương đối nhanh

1.2 Giới thiệu ngôn ngữ C#

Có nhiều ngôn ngữ có thể sử dụng để xây dựng ứng dụng trên môi trường NET Tuy nhiên, C# là một ngôn ngữ lập trình đặc biệt, được thiết kế để xây dựng ứng dụng trên môi trường này

C# là một ngôn ngữ lập trình đơn giản, hiện đại, an toàn và hướng đối tượng Nó là ngôn ngữ mạnh nhất trong NET, thay thế cho C++ và việc sử dụng con trỏ dễ dàng hơn C++

Trong C#, một bài toán là một vấn đề cần được giải quyết (Problem) và tập hợp những gì ta làm bằng C# để giải quyết vấn đề nào đó là một giải pháp (Solution) Để có được một giải pháp thì cần nhiều dự án (Project) cho nên giải pháp trong C# thường có một hoặc nhiều dự án Dự án trong C# có thể là một chương trình đơn giản hoặc một thư viện hoặc một bộ cài đặt…

1.2.1 Chương trình đầu tiên

Mã nhị phân

Sử dụng CLR Thực thi Biên dịch

Biên dịch lần 1

Biên dịch lần 2

Trang 11

- Gõ lệnh sau để biên dịch file ChaoMung.CS

D:\> csc /t:exe /out:chaomung.exe ChaoMung.CS

- Sau khi biên dịch thành công, thực thi file chaomung.exe ta được kết quả:

D:\> chaomung.exe

Hello, World

Hình 1-4 Giao diện khởi động Microsoft Visual Studio 2008

Trang 12

Trang 6

b) Sử dụng IDE:

- Khởi động Microsoft Visual Studio:

Lưu ý: nếu là trường hợp khởi động IDE lần tiên sau khi cài thì chương trình yêu cầu lựa chọn môi trường lập trình mặc định Trong trường hợp này ta nên chọn C# Khi khởi động, chương trình có giao diện như Hình 1-4:

- Tạo mới dự án:

Chọn File > New > Project… để tạo một project mới Giao diện tạo mới một dự án như Hình 1-5:

Hình 1-5 Giao diện tạo dự án mới trên Microsoft Visual Studio 2008

- Thêm nội dung sau vào hàm Main:

Console.WriteLine("Hello, World");

Console.ReadKey();

- Nhấn phím F6 để biên dịch

- Nhấn phím F5 để thực thi

- Kết quả thực thi: Dòng chữ “Hello, World” được in ra màn hình

1.2.2 Kiểu dữ liệu, biểu thức, câu lệnh

a) Kiểu dữ liệu:

C# có 2 loại kiểu dữ liệu: kiểu giá trị và kiểu tham chiếu Các kiểu dữ liệu của C# được mô tả ở bảng sau:

Trang 13

Trang 7

Kiểu dữ liệu Mô tả

Kiểu đơn giản

Số nguyên có dấu: sbyte, short, int, long

Số nguyên không dấu: byte, ushort, uint, ulong

Ký tự Unicode: char

Số thực: float, double Kiểu decimal: decimal Kiểu logic: bool

Kiểu cơ sở của các kiểu khác: object Unicode: string

class C { }

Kiểu dữ liệu số của C# được mô tả ở bảng sau:

Danh mục kiểu Số bit Kiểu Phạm vi

Trang 14

Trang 8

b) Biểu thức:

Danh mục Biểu thức Mô tả

trong trường hợp ngược lại

không có kiểu là T

Trang 15

Trang 9

Trang 16

Trang 10

Console.WriteLine("Không đs"); break;

} }

}

for (int i = 0; i < args.Length; i++) {

Console.WriteLine(args[i]);

} }

foreach (string s in args) {

Console.WriteLine(s);

} }

for (int i = 0; i < args.Length; i++) {

if (args[i].StartsWith("/")) continue; Console.WriteLine(args[i]);

} }

Trang 17

Trang 11

return a + b;

} static void Main() {

return x / y;

} static void Main(string[] args) {

} catch (Exception e) {

Console.WriteLine(e.Message);

} }

unchecked {

Console.WriteLine(i + 1);// Overflow }

} balance -= amount;

} }

}

using (TextWriter w = File.CreateText("test.txt")) {

w.WriteLine("Line one");

w.WriteLine("Line two");

w.WriteLine("Line three");

} }

Trang 18

Trang 12

1.2.3 Chú thích

Chú thích là hình thức cho phép chèn thêm dòng chỉ dẫn, tài liệu vào trong đoạn mã lệnh Khi biên dịch, trình biên dịch sẽ bỏ qua các dòng được chú thích C# cho phép 3 kiểu chú thích sau:

Chú thích một dòng:

Sử dụng cặp “//” để chú thích một dòng Chú thích có hiệu lực từ khi gặp cắp dấu này cho đến hết dòng (gặp dấu kết thúc dòng)

/* Day la chu thich nhieu dong lien tiep

So dong co the rat nhieu

Chú ý:

Ta có thể dùng nhiều chú thích một dòng để chú thích cho nhiều dòng và dùng chú thích nhiều dòng để chú thích cho một dòng Tuy nhiên, người ta thường dùng:

- Chú thích một dòng cho mã lệnh tạm thời chưa dùng hoặc có thể sai Điều này làm cho giúp cho việc soạn thảo mã lệnh được nhanh chóng

- Chú thích nhiều dòng cho tài liệu

Chú thích tài liệu XML:

Sử dụng bộ dấu “///” để chèn tài liệu XML vào mã lệnh Chú thích chỉ có hiệu lực như chú thích một dòng Tuy nhiên, C# có thể hiểu được các chú thích này trên nhiều dòng được chú thích liên tiếp Khi biên dịch, khi trình biên dịch gặp chú thích này, trình biên dịch sẽ biên dịch vào Assembly

Ví dụ dưới đây minh họa về chú thích tài liệu XML:

/// <summary> documentation here </summary>

Với dòng chú thích trên, chúng ta có thể hiểu đó là một thẻ XML Cụ thể

ở đây là thẻ có tên là “summary” và có nội dung là “documentation here”

Chú thích loại này thường được dùng để chú thích cho các lớp, phương thức,… Tuy nhiên, chú thích này phải được đặt ngay trước mã lệnh tương ứng với đối tượng cần chú thích

Trang 19

Trang 13

1.2.4 Các cấu trúc dữ liệu

a) Mảng:

Mảng là kiểu được dùng để thể hiện một dãy các đối tượng có cùng kiểu

dữ liệu được đặt liên tiếp nhau trong bộ nhớ Chúng ta dùng cặp dấu “[]” để khai báo và truy xuất các phần tử của mảng

Khi khai báo, chúng ta có thể dùng biến hay hằng để định nghĩa chiều dài của mảng Tuy nhiên, kích thước của mảng sẽ không thể thay đổi sau lệnh khai báo

Ví dụ dưới đây minh họa về khai báo mảng một chiều:

int[] integers = new int[15];

// Khai bao mang integers co kich thuoc la 15

int length = 20;

int[] list = new int[length];

list[0] = 2;

Chúng ta cũng có thể khai báo một mảng theo cách liệt kê

Ví dụ minh họa về khai báo theo kiểu liệt kê:

int[] Mang = {3, 5, 7, 8};

Để đọc chiều dài của mảng hiện tại ta có thể sử dụng cú pháp: <tên mảng>.Length

C# còn hỗ trợ các mảng nhiều chiều: kiểu ma trận, kiểu răng cưa

Ví dụ dưới đây minh họa cách khai báo và khởi tạo một mảng nhiều chiều kiểu ma trận hai chiều bằng cách sử dụng thêm dấu “,”:

Trang 20

Trang 14

Như vậy A như là một ma trận 2 cột x 4 dòng Phần tử đầu tiên là A[0,0]

có giá trị là “Lennon”, phần tử cuối cùng là A[3,1] có giá trị là “Richard”

Tương tự, để khai báo mảng ba chiều ta có thể khai báo như sau:

String [ , , ] my3D_Array;

Kiểu mảng nhiều chiều thứ hai là mảng kiểu răng cưa, trong đó kích thước của mỗi chiều là có thể khác nhau Chính xác, đây là kiểu dữ liệu mảng của các mảng Đoạn mã lệnh dưới đây minh họa cách định nghĩa một mảng kiểu răng cưa:

int[][] a = new int[3][];

a[0] = new int[4];

a[1] = new int[3];

a[2] = new int[1];

b) struct:

Kiểu dữ liệu struct là kiểu dữ liệu dung lượng hạn nhẹ (light-weight) Nó thường được dùng trong trường hợp trình điều khiển dữ liệu chỉ cần một tập các biến giá trị Các struct tương tự như các class ở chỗ chúng đều có thể chứa các hàm tạo, các phương thức, thậm chí là có thể xây dựng các giao diện Tuy nhiên, struct khác class ở các điểm chính:

- struct là kiểu giá trị còn class là kiểu tham chiếu Điều này dẫn đến chúng có cách dùng khác nhau khi là tham số được truyền cho các phương thức

- struct không hỗ trợ kế thừa Tuy nhiên, struct có thể tiết kiệm bộ nhớ hơn so với class

- struct luôn luôn có hàm tạo mặc định trong khi class có thể ẩn hạm tạo bằng cách cài đặt phạm vị truy cập của của hàm tạo là private

Sau đây là một ví dụ về cách dùng của struct:

Trang 21

Hay trường hợp có ba số 0, 1 và 2 tương ứng với ba buổi trong ngày thì ta

có thể gợi nhớ tập này bằng enum sau:

public enum TimeOfDay

Trang 22

TimeOfDay time2 = (TimeOfDay)

Enum.Parse(typeof(TimeOfDay), "Afternoon", true);

Console.WriteLine((int)time2);

1.3 Câu hỏi và bài tập

1) Cài đặt bộ Microsoft Visual Studio 2005 (2008, 2010) lên máy tính cá nhân

Lưu ý: chỉ cài đặt ngôn ngữ C#, không cần cài đặt các ngôn ngữ J#, C++,

6) Viết chương trình nhập vào 4 số nguyên In ra màn hình giá trị lớn nhất

7) Viết chương trình giải phương trình bậc nhất: bx +c =0 với các hệ số b,

Trang 23

Trang 17

12) Viết chương trình có 4 mục chọn Mục chọn đầu tiên cho phép dừng chương trình và 3 mục chọn tiếp theo sẽ thực hiện 3 trong các bài tập 5-11

1.4 Bài mẫu

Viết chương trình nhập vào danh sách sinh viên và in ra danh sách thông tin sinh viên vừa nhập Thông tin về sinh viên bao gồm: mã sinh viên, họ tên sinh viên, ngày sinh, giới tính và mã lớp

// Gán dữ liệu cho 1 sinh viên

hotensv, string ngaysinh, string gioitinh, string malop)

{

sv.masv = masv;

sv.hotensv = hotensv;

sv.malop = malop;

return sv;

}

// In 1 sinh viên thành 1 dòng dữ liệu

Trang 24

Trang 18

{

// Khai báo biến của lớp

static int n;

// Nhập danh sách sinh viên từ bàn phím

static void NhapDSSV()

tin cho so sinh vien" );

for (i = 0; i < n; i++)

{

thu " + (i + 1));

(dd/mm/yyyy) = " );

nu) = " );

ngaysinh, gioitinh, malop);

}

}

// In danh sách sinh viên ra màn hình Console

static void InDSSV()

Trang 26

Trang 20

Chương 2:

Hướng đối tượng trong C#

Thời lượng: 12 tiết Mục tiêu:

- Hiểu được hướng đối tượng trong C#,

- Hiểu được không gian tên, ngoại lệ,

- Sử dụng được một số lớp thông dụng,

- Viết được một chương trình hướng đối tượng bằng C#

2.1 Lớp, đối tượng

Các lớp (class) là các kiểu nền tảng của C# Một lớp là một một cấu trúc

dữ liệu được hình thành bằng cách kết nối những trạng thái (trường) với hành động (phương thức, hàm) thành một đơn vị đơn lẻ Một lớp cung cấp một định nghĩa cho việc tự động tạo thể hiện cho của lớp cũng như thông tin về đối tượng Các lớp có hỗ trợ việc kế thừa và đa hình, lớp dẫn xuất có thể mở rộng và đặc biệt hóa từ lớp cơ sở

Chúng ta có thể tạo ra một lớp mới bằng cách sử dụng khai báo lớp Một khai báo lớp được bắt đầu với phần đầu gồm thuộc tính truy cập của lớp, tên lớp, tên lớp cơ sở và các giao diện mà lớp đó kế thừa Sau phần đầu là phần thân lớp Thân lớp bao gồm một danh sách các khai báo thành phần được đặt giữa hai ký hiệu mở, đóng đoạn: {, }

Sau đây là một khai báo lớp của một lớp đơn giản có tên là Point

public class Point

Trang 27

Trang 21

tham chiếu đến đối tượng

Các câu lệnh sau sẽ tạo ra hai đối tượng Point và tham chiếu đến các đối tượng này bằng hai biến

Point p1 = new Point(0, 0);

Point p2 = new Point(10, 20);

Khi một đối tượng có thời gian dài không sử dụng thì NET sẽ tự động hủy đối tượng đó thông qua công cụ dọn rác

2.1.1 Các thành phần của lớp

Các thành phần của lớp bao gồm thành phần tĩnh (static) và thành phần thể hiện Thành phần tĩnh thuộc lớp và thành phần thể hiện thuộc đối tượng cụ thể của lớp

Bảng sau mô tả tổng quan về các loại thành phần của lớp

Thành phần Mô tả

chương trình

Trang 28

public List(): List(defaultCapacity) {}

public List(int capacity) {

items = new object[capacity];

}

Constructors

public int Count {

get { return count; } }

public string Capacity {

get { return items.Length;

} set {

if (value < count) value = count;

if (value != items.Length) { object[] newItems = new object[value];

Array.Copy(items, 0, newItems, 0, count);

items = newItems;

} }

Indexer

Trang 29

Trang 23

items[index] = value;

OnListChange();

} }

public void Add(object item) {

protected virtual void OnChanged() {

if (Changed != null) Changed(this, EventArgs.Empty);

}

public override bool Equals(object other) {

return Equals(this, other as List);

}

static bool Equals(List a, List b) {

if (a == null) return b == null;

if (b == null || a.count != b.count) return false;

for (int i = 0; i < a.count; i++) {

if (!object.Equals(a.items[i], b.items[i])) {

return false;

} }

Trang 30

Trang 24

2.2 Không gian tên, lệnh using

2.2.1 Không gian tên

Chúng ta có thể hình dung: việc quản lý lớp trong C# cũng giống như việc quản lý file trong bộ nhớ máy tính Điều này có nghĩa là số lượng lớp trong C# rất nhiều Trong máy tính, người ta sắp xếp các file vào các thư mục (folder) Các thư mục chứa các thư mục con và các file Các file trong các thư mục khác nhau được phép trùng tên Trong C#, người ta sắp xếp các lớp vào các không gian tên (namespace) Các không gian tên cũng được phân cấp như các thư mục trong máy tính Các lớp trong các không gian tên khác nhau được phép trùng tên

Ta có thể khai báo nhiều không gian tên như sau:

Chúng ta cũng dùng cấu trúc này để tổ chức không gian tên trong định nghĩa không gian tên Nên đoạn mã có thể viết như sau :

Ngày đăng: 28/10/2020, 10:41

TỪ KHÓA LIÊN QUAN