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

Giáo trình Lập trình cơ sở dữ liệu: Phần 1 - ĐH Sư phạm kỹ thuật Nam Định

135 18 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 135
Dung lượng 2,22 MB

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

Nội dung

Giáo trình Lập trình cơ sở dữ liệu: Phần 1 cung cấp cho người học những kiến thức như: Tìm hiểu môi trường .NET và Visual Basic.NET; Cơ sở lập trình trong Visual Basic.NET; Lập trình hướng đối tượng; Làm việc với các điều khiển; Tạo lập cơ sở dữ liệu;...Mời các bạn cùng tham khảo!

Trang 1

MỤC LỤC

MỤC LỤC 1

Chương 1 Tìm hiểu môi trường NET và Visual Basic.NET 6

2 Các thành phần của MicroSoft NET framework 6

3 Tìm hiểu về Metadata 7

4 Tìm hiểu về Common Language Runtime- CRL 8

5 Tổ chức thư viện đối tượng bằng không gian tên (namespaces) 8

6 Tìm hiểu mã IL của NET 10

7 Đóng gói chương trình NET trong gói Assembly 11

8 Giới thiệu Visual Studio.NET 11

8.1 Môi trường phát triển Visual studio.NET 11

8.2 Khởi động Visual studio.NET 11

8.3 Mở một dự án mới của Visual Basic 12

8.4 Mở một dự án cụ thể 13

8.5 Dự án (Project) và giải pháp (Solutions) 14

8.6 Các công cụ của Visual Studio.NET 14

8.6.1 Thanh tiêu đề (Title Bar) 15

8.6.2 Thanh thực đơn (Menu Bar) 15

8.6.3 Thanh công cụ (Tool Bar): 15

8.6.4 Hộp công cụ (ToolBox) 16

8.7 Bộ thiết kế Windows Forms Designer 16

8.8 Chạy một chương trình Visual Basic 16

8.9 Cửa sổ thuộc tính Properties 16

8.10 Thoát khỏi Visual Studio.NET 17

Chương 2 Cơ sở lập trình trong Visual Basic.NET 18

2.1 Kiểu dữ liệu cơ sở 18

2.2 Khai báo biến 18

2.2.1 Khai báo nhiều biến 18

2.2.1 Phạm vi hoạt động của biến 19

2.3 Khai báo hằng (Constants) 19

2.4 Toán tử 20

2.4.1 Toán tử số học 20

2.4.1 Toán tử so sánh 20

2.4.2 Toán tử gán 20

2.5 Một số hàm chuẩn 21

2.5.1 Hàm đại số 21

2.5.2 Hàm thời gian 22

2.6 Quy ước viết lệnh 23

2.6.1 Viết lời chú thích 23

2.6.2 Ngăn cách các câu lệnh trên một dòng 23

Trang 2

2.6.3 Kéo dài câu lệnh trên hai dòng 23

2.7 Lệnh IF…THEN 24

2.8 Câu lệnh Select Case 25

2.9 Vòng lặp 26

2.9.1.Lệnh lặp For Next 26

2.9.2 Vòng lặp không xác định 26

2.10 Phương thức Console.Read và Console.Readln 27

2.11 Phương thức Console.Write và phương thức Console.Writeline 27

2.12 Chương trình con 28

2.12.1 Các thủ tục và hàm do người dùng xác định 28

2.12.2 Khai báo thủ tục và hàm 28

1.12.3 Lời gọi thủ tục, hàm 29

2.12.4 Thoát khỏi thủ tục / hàm 30

2.12.5 Tham số và việc truyền tham số cho chương trình con 30

2.12.6 Biến địa phương/biến toàn cục 32

2.13 Kiểu mảng (Array) 34

2.14 Kiểu dữ liệu do người dùng tự định nghĩa 34

2.15 Lơ ́ p Collections 35

2.16 Bẫy lỗi 35

Chương 3 Lập trình hướng đối tượng 37

3.1 Tạo một lớp (Class) mới 37

3.2 Lớp và không gian tên (namespace) 37

3.3 Khai báo phương thức (Methods) 38

3.4 Khai báo thuộc tính (Properties) 40

3.5 Thuộc tính kiểu ReadOnly và WriteOnly 41

2.6 Thuộc tính ngầm định (Default Property) 41

3.6 Định nghĩa chồng phương thức (Overloading method) 42

3.7 Vòng đời của đối tượng (Object Lifecycle) 43

3.8 Thừa kế 45

3.9 Các thành phần dùng chung của class 49

3.10 Biến du ̀ng chung (Shared variable) 50

3.11 Biến toàn cục (Global variable) 51

3.12 Sinh sự kiện (Raising Event) để xử lý trong một Project khác 52

3.13 Sư ̉ du ̣ng mô ̣t số lớp đối tươ ̣ng dựng sẵn 54

3.13.1 Làm việc với Clipboard 54

3.13.2 Lấy thông tin về thờ i gian hê ̣ thống 55

3.13.3 Lấy thông tin hệ thống 56

Trang 3

3.13.5 Sử du ̣ng chuô ̣t 57

3.13.6 Sử du ̣ng bàn phím 57

Chương 4 Làm việc với các điều khiển 58

4.1 Một số thao tác với các điều khiển 58

4.1.1 Đưa điều khiển vào biểu mẫu (form) 58

4.1.2 Chọn một đối tượng trên Form 58

4.1.3 Di chuyển đối tượng 58

4.1.4 Hiệu chỉnh kích thước đối tượng 58

4.1.5 .Khoá các điều khiển (locked Điều khiển) 59

4.1.6 Thứ tự tab (Tab Order) của các điều khiển 59

4.2 Điều khiển, thuộc tính, phương thức và sự kiện 60

4.2.1 Điều khiển (đối tượng) 60

4.2.2 Thuộc tính 60

4.2.3 Phương thức Error! Bookmark not defined 4.2.4 Sự kiện 60

4.2.5 Mối quan hệ giữa phương thức, thuộc tính và sự kiện Error! Bookmark not defined 4.3 Mảng điều khiển (Arrays Control) 61

4.4 Tự động thay đổi ki ́ch thước và định chỗ (positioning) 63

4.5 Một số điều khiển thông dụng 68

4.5.2 Textbox 68

4.5.3 Label 69

4.5.4 Button 71

Ví dụ sử dụng điều khiển textbox, button 71

4.5.5 Điều khiển Checkbox và Radiobutton 73

4.5.6 Điều khiển DateTimePicker 75

4.5.6 Forms 82

4.6.1 Chọn Form khởi động (Startup Form) 84

4.6.2 Quy định vị trí ban đầu của form 85

4.6.3 Thiết lập kiểu đường biên của Form 85

4.7 Hô ̣p thông báo (Message box) 87

4.8 Các hộp thoại thông dụng 89

4.8.1 Điều khiển hộp thoa ̣i Open 90

4.8.2 Điều khiển hộp thoa ̣i Save 92

4.8.3 Điều khiển hộp thoa ̣i Font 93

4.8.4 Điều khiển hộp thoa ̣i Color 95

4.9 Điều khiển Splitter 96

4.10 Các điều khiển Providers 98

4.10.1 Điều khiển HelpProvider và ToolTip 98

4.10.2 Điều khiển ErrorProvider 99

4.11 Menus 101

4.12 MDI Forms Error! Bookmark not defined 4.13 Toolbars 107

Trang 4

4.14 ListBox 75

4.15 ComboBox 79

Chương 5 Tạo lập cơ sở dữ liệu 111

5.1 Tạo cơ sở dữ liệu Access 111

5.1.1 Tạo cơ sở dữ liệu 111

5.1.2 Tạo bảng 112

5.1.3 Tạo mối quan hệ giữa các bảng 115

5.1.4 Tạo Queries 117

5.2 Tạo cơ sở dữ liệu sử dụng MicroSoft SQL Server Managemant Studio 119

5.2.1 Tạo cơ sở dữ liệu 119

5.2.3 Tạo Query 125

5.2.5 Thêm ràng buô ̣c cho bảng 129

5.2.6 Thêm dữ liệu vào bảng 129

5.2.7 Tạo views 130

5.2.8 Thủ tục lưu trữ (Stored Procedure) 132

5.2.9 Trigger và thông báo sự kiện 133

5.2.10 Giao dịch (Transaction) 134

2.5.11 Bảo mật và quyền sở hữu 134

Chương 6 Giới thiệu ADO.NET 136

6.1 Kiến trúc ADO.NET 136

6.2 Truy xuất dữ liệu với SQL Server Provider 137

6.2.1 Đối tượng kết nối SQLConnection 137

6.2.2 Thực thi lệnh SQL với SqlCommand 141

6.2.3 Truyền tham số với SqlParameter 147

6.2.4 Đọc dữ liệu với DataReader 148

6.2.5 Tương tác dữ liệu với SQLDataAdapter 149

6.3 Các đối tượng dữ liệu 154

6.3.1 DataSet 154

6.3.2 DataTable 155

6.3.3 BindingSource 157

6.3.4 DataColumn 157

6.3.5 DataRow 158

6.3.6 DataRelation 159

6.4 Các đối tượng trình diễn dữ liệu 159

6.4.1 DataView 159

6.4.2 DataGridView 160

6.5 Ràng buộc dữ liệu (Binding) với các điều khiển 161

Chương 7 Tạo báo cáo bằng Crystal report 163

7.1 Thiết kế báo cáo 163

7.2 Xem báo cáo 172

7.3 Sử dụng các đối tượng của báo cáo 174

7.3.1 Các đối tượng trên báo cáo 174

Trang 5

7.3.2 Định dạng chuỗi ký tự 175

7.3.3 Sử dụng công cụ Formula Editor 176

7.4 Sắp xếp và nhóm dữ liệu 177

7.4.1 Sắp xếp các bản ghi 177

7.4.2 Nhóm các bản ghi 178

7.5 Trình bày báo cáo phân cấp 180

7.6 Tổng hợp dữ liệu 180

7.7 Sử dụng tham số và công thức 181

7.8 Đóng gói Project và report 183

Chương 8 Phân phối và đóng gói ứng dụng Visual Basic.NET 188

8.1 Lập kế hoạch triển khai đóng gói dự án 188

8.2 Các cách đóng gói và triển khai ứng dụng khác nhau 188

8.3 Tạo dự án Deployment 189

8.3.1 Sử dụng trình Setup Winzard 191

8.3.2 Tạo dự án đóng gói sử dụng mẫu Setup Winzard 193

8.4 Tùy biến các lựa chọn đóng gói 193

8.4.1 Cấu hình các thiết lập 193

8.4.2 Tạo shortcut cho ứng dụng cài đặt 195

8.4.3 Thiết lập tên công ty và phiên bản chương trình 195

7.4.4 Đặt các thuộc tính cho gói ứng dụng 197

8.5 Biên dịch và đóng gói dự án – kiểm tra việc cài đặt 197

8.6 Tìm hiều các file Setup và gỡ chương trình 200

8.6.1 Kiểm tra file cài đặt 200

8.6.2 Tháo gỡ chương trình 201

Trang 6

Chương 1 Tìm hiểu môi trường NET và Visual Basic.NET

1 Giới thiệu về NET Framework

NET được phát triển từ đầu năm 1998, lúc đầu có tên là Next Generation Windows Services (NGWS) Nó là hạ tầng cơ bản được chuẩn hoá, độc lập với

ngôn ngữ lập trình, cho phép ta xây dựng, tích hợp, biên dịch, triển khai, chạy các dịch vụ Web, XML, tiện ích hay thực hiện chương trình đa cấu trúc (phát triển bằng các ngôn ngữ lập trình hỗ trợ NET) trên hệ điều hành có cài đặt NET Framework

Nó sẽ trở thành một phần của MicroSoft Windows và sẽ được xuất qua các platform

khác, có thể ngay cả Unix Mô hình ứng dụng của NET Framework

2 Các thành phần của MicroSoft NET framework

Các phần chính của Microsoft.NET Framework:

Trang 7

.NET Framework bao gồm 2 phần chính là Common Language Runtime (CLR),

và NET Framework Class Library (FCL)

CLR là thành phần chính của NET Framework, quản lý mã có thể thực thi của chương trình, quản lý các tiến trình, quản lý tiểu trình (Threading), quản lý bộ nhớ, cung cấp dịch vụ để biên dịch, tích hợp và tác vụ truy nhập từ xa (Remoting)

FCL bao gồm tất cả các dịch vụ giao tiếp người sử dụng, điều khiển, truy cập dữ liệu, XML, Threading, bảo mật

3 Tìm hiểu về Metadata

Metadata là một thuật ngữ mà người lập trình sử dụng dùng để mô tả dữ liệu về

dữ liệu Môi trường NET sử dụng Metadata để mô tả những đối tượng, các gói assembly, dữ liệu ADO.NET Nét đặc trưng của môi trường NET là những đối tượng có thể tự mô tả Một chương trình có thể truy vấn thông tin về một đối tượng

để xác định phương thức, thuộc tính, trường mà đối tượng sẵn sàng hỗ trợ cho chương trình sử dụng

.NET có một file đặc biệt gọi là assembly sử dụng metadata để mô tả thông tin về những lớp mà ứng dụng cung cấp và những thành phần mà ứng dụng sử dụng (như các file dữ liê ̣u), XML định nghĩa metadata, metadata định nghĩa các dữ liệu khác

Trang 8

4 Tìm hiểu về Common Language Runtime- CRL

Môi trường NET được xây dựng dựa trên hai nền tảng mạnh và độc lập về ngôn ngữ với thư viện runtime, đó là thư viện thực thi ngôn ngữ chung (Common Language Runtime- CLR) và thư viện lớp (Class Libraries) Vì những thư viện này độc lập với ngôn ngữ, một lập trình viên Visual Basic.NET có cùng một tập hợp hàm, lớp, thủ tục để sử dụng như một lập trình viên C# hay C++.NET

Mọi ngôn ngữ lập trình đều được biên di ̣ch ra ngôn ngữ trung gian Microsoft Intermediate Language (IL) nhờ bắt buộc mọi ngôn ngữ đều phải dùng cùng các kiểu dữ liệu chung (gọi là Common Type System) Vì vậy, cho phép các ngôn ngữ

có thể hợp tác nhau một cách thông suốt Tức là trong NET, các chương trình VB.NET có thể kế thừa các chương trình C# và ngược lại một cách hoàn toàn tự nhiên

5 Tổ chức thư viện đối tượng bằng không gian tên (namespaces)

Trong môi trường lập trình hướng đối tượng, người lập trình thường sử dụng các lớp để mô tả đối tượng Để tổ chức các lớp tốt hơn và để đơn giản, người lập trình thường nhóm các lớp vào trong thư viện lớp Thông thường, các lớp trong thư viện lớp sẽ liên hệ với nhau để xử lý một nhiệm vụ nào đó Khi số lớp trong một thư viện tăng lên, khả năng xung đột tên rất dễ xảy ra Để giảm bớt xung đột tên tiềm ẩn có thể xảy ra, lập trình viên lên sử dụng không gian tên (namespaces) để tổ chức các lớp đối tượng

Namespaces là một cách đặt tên để giúp sắp đặt các lớp ta dùng trong chương

trình một cách thứ tự để thuận lợi cho việc tìm kiếm chúng Tất cả mã chương trình trong NET, viết bằng Visual Basic.NET, C# hay ngôn ngữ nào khác, đều được chứa trong các namespace Điểm này cũng áp dụng cho thư viện lớp của NET Chẳng hạn, các lớp của WinForms đều nằm trong System.Windows.Forms namespace Và các lớp dùng cho tập hợp như Queue, Stack, Hashtable v.v đều nằm trong System.Collections namespace

Mỗi namespace chứa những phần của mã lệnh thích hợp cho nó trong chương trình nói chung, trong NET ta có thể có hai lớp có cùng một tên nhưng nằm trong hai namespaces khác nhau Ta có thể dùng namespaces bằng cách chỉ ra tên của

Trang 9

namespace rồi đến tên lớp , tiếp theo là tên lớp dẫn xuất …hoă ̣c có thể dùng từ khoá Import để chỉ ra tên namespace chứa lớp mà ta đề cập đến Nhưng điều tiên quyết là

ta phải tham chiếu đến file assembly chứa namespace mà ta muốn dùng Ta thực hiện việc ấy bằng cách chọn Project | Add References Khi hộp thoại Add References hiện ra, chọn Tab NET cho standard NET components hay Tab

Projects cho dữ liê ̣u của một NET project khác, chọn dữ liệu bạn muốn rồi Click nút Select, sau đó Click nút OK Chẳng hạn ta muốn sử du ̣ng các phương thức read

và write từ studio để nhập dữ liệu và hiển thị dữ liệu trong ứng dụng dạng Console (ứng dụng có giao diện dạng text g iống như MS - DOS trướ c đây ) Namespace ta

cần sẽ là System.Console Trong cách viết thứ nhất ta sẽ viết lệnh như sau để viết

hàng chữ "Chào thế giới":

System.Console.WriteLine("Hello world!") Nếu ta dùng từ khoá Import bằng cách

sử dụng câu lệnh Imports System.Console ở đầu phần mã lệnh trong module, ta có

thể code gọn hơn: WriteLine ("Hello world!")

Dưới đây là một số namespaces thông dụng:

System.CodeDOM Chứa các lớp mà chương trình có thể sử dụng để biểu

diễn tài liệu mã nguồn System.Colection Chứa các lớp định nghĩa các cấu trúc dữ liệu dạng tập

hợp như: Mảng, danh sách, hàng đợi, ngăn xếp,… System.Configuration Chứa các lớp xử lý thông tin cấu hình NET Framework System.Data Chứa các lớp đối tượng cơ sở dữ liệu

System.Diagnostics Chứa các lớp để chuẩn đoán, gỡ lỗi

System.Drectory.Services Chứa các lớp dịch vụ thư mục cung cấp khả năng giao

tiếp với hệ thống Active Directory System.Drawing Chứa các lớp hỗ trợ tính năng đồ hoạ

System.Globalization Chứa các lớp hỗ trợ khả năng quốc tế hoá như ngày

tháng, thời gian, tiền tệ System.IO Chứa các lớp hỗ trợ thao tác vào/ra dữ liệu

System.Management Chứa các lớp quản lý giao diện với dịch vụ thiết bị của

Trang 10

windows System.Messaging Chứa các lớp thực hiện gửi/nhận thông điệp qua hàng

đợi System.NET Chứa các lớp thực hiện thao tác xử lý mạng

System.Reflection Chứa các lớp thực hiện truy vấn khả năng của một đối

tượng System.Runtime Chứa các lớp dùng để gọi tương tác với mã assembly,

các đối tượng COM, các đối tượng từ xa System.Security Chứa các lớp xử lý về bảo mật và mã hoá

System.Text Chứa các lớp xử lý ký tự ASCII, Unicode, UTF

System.Timers Chứa các lớp hỗ trợ sự kiện Timer

System.Web Chứa các lớp hỗ trợ truy xuất Web

System.Windows.Forms Chứa các lớp tạo cửa sổ giao diện của ứng dụng dạng

Windows Form System.XML Chứa các lớp xử lý dữ liệu XML

6 Tìm hiểu mã IL của NET

Thông thường khi biên dịch chương trình, trình biên dịch sẽ chuyển mã nguồn (source) thành mã máy (các chỉ thị CPU) Các chỉ thị này phụ thuộc vào từng loại CPU, như Intel, Macintosh, Để hỗ trợ chương trình chạy trên nhiều máy, Java tạo nên một máy ảo Các chương trình biên dịch ra mã máy ảo và máy ảo của Java chuyển dịch mã máy ảo thành chỉ thị CPU mà máy ảo chạy trên đó .NET hoạt động tương tự như vậy, các chương trình NET không biên dịch ra ra mã máy như các file EXE thông thường, thay vào đó, chương trình được biên dịch ra mã IL (Intermediamte Language- mã trung gian) Chính vì vậy, chương trình EXE của NET hoàn toàn không giống như chương trình EXE của windows trước đây Những chương trình EXE của NET phải chạy trên bộ khung NET Framework, có thể coi đây là máy ảo dùng diễn dịch mã IL thành chỉ thị CPUđể thực thi chương trình

Trang 11

Để xem mã IL của chương trình NET sau khi biên dịch, ta sử dụng chương trình ILDASM.EXE như sau: C:\ildasm <tên_chương_trình.NET>.exe

7 Đóng gói chương trình NET trong gói Assembly

Trong NET các chương trình được ngắt ra thành các đơn vị gói (được gọi với thuật ngữ Assembly) Một gói assembly có thể chứa mã chương trình, thư viện lớp hoặc thông tin về đối tượng (được lưu dạng metadata)

File assembly có thể có phần mở rộng là EXE hoặc DLL Nếu một assembly là thư viện lớp nó có thể dùng riêng cho ứng dụng hoặc dùng chung giữa các ứng dụng Các assembly dùng chung được đặt trong thư mục C:\WinNT\Assembly

8 Giới thiệu Visual Studio.NET

8.1 Môi trường phát triển Visual studio.NET

Visual Studio.NET là bộ công cụ giúp phát triển các ứng dụng từ ứng dụng desktop đến ứng dụng mạng Nó là môi trường để phát triển ứng dụng sử dụng tất

cả các ngôn ngữ như Visual Basic.NET, Visual C++, Visual C#.Net hết sức mạnh

mẽ và thuận lợi

8.2 Khởi động Visual studio.NET

Việc khởi động Visual Studio.NET cũng tương tự như các phần mềm khác như MicroSoft Word hay Excel Nếu lần đầu khởi động Visual Studio.NET sẽ yêu cầu xem bạn chạy nó với ưu tiên ứng dụng và ngôn ngữ nào Để sử dụng ngôn ngữ lập trình Visual Basic.NET, bạn chọn Visual Basic và start Visual Studio.NET Màn hình bắt đầu như sau:

Trang 12

Nếu trang start page không hiện, bạn có thể làm nó xuất hiện bằng cách chọn menu View | Other Windows | Start Page

8.3 Mở một dự án mới của Visual Basic

- Chọn File/New/ Project

Trang 13

xuất hiện hộp thoại

Chọn kiểu ứng dụng rồi Click nút OK

8.4 Mở một dự án cụ thể

- Click chuột vào project (dự án) của phần Open tại trang Start Page

- Duyệt đến thư mục chứa dự án của bạn

Trang 14

- Mở file Quanlythuvien.sln Khi này trang Start Page sẽ tạm ẩn đi, một cửa sổ mới xuất hiện:

8.5 Dự án (Project) và giải pháp (Solutions)

Trong Visual Studio.NET, các chương trình đang triển khai và phát triển được gọi là dự án (Project) hoặc giải pháp (Solution) bởi chúng chứa rất nhiều file và do nhiều thành phần, đối tượng riêng lẻ hợp lại Một chương trình Visual Studio.NET bao gồm một file giải pháp và một file dự án hợp lại File dự án chứa thông tin đặc biệt liên quan đến một tác vụ lập trình đơn lẻ File giải pháp lại chứa thông tin về một hay nhiều dự án

8.6 Các công cụ của Visual Studio.NET

Công cụ trong Visual Studio.NET rất phong phú Sau đây là màn hình làm việc của bộ Visual Studio.NET:

Trang 15

8.6.1 Thanh tiêu đề (Title Bar)

Thanh tiêu đề thể hiện tên của chương trình (project) mặc định là Project1

8.6.2 Thanh thực đơn (Menu Bar)

Thanh thực đơn (Menu Bar) xuất hiện ngay dưới thanh tiêu đề, chứa các lệnh đơn

để thao tác với Visual Studio Mỗi lệnh đơn chứa một nhóm lệnh để thực hiện các thao tác trên cùng đối tượng (ví dụ lệnh đơn File chứa các lệnh để thao tác với tệp tin) Thanh thực đơn bao gồm các lệnh đơn sau:

8.6.3 Thanh công cụ (Tool Bar):

Thanh công cụ là thanh chứa các lệnh được thể hiện dưới dạng biểu tượng giúp người sử dụng có thể thi hành một lệnh nhanh hơn Thanh công cụ bao gồm các nút:

Cửa sổ thiết kế form Thanh thực đơn

Hộp công cụ

Thanh công cụ chuẩn

Solution Explorer

Cửa sổ thuộc tính Cửa sổ hiển thị kết quả- Output

Trang 16

8.6.4 Hộp công cụ (ToolBox)

Hộp công cụ chứa các đối tượng điều khiển (Control) sẽ được đặt vào biểu mẫu (Form) khi thiết kế giao diện của chương trình Nó được nhóm thành các nhóm công cụ Để chọn một công cụ trong nhóm, trước tiên ta chọn nhóm công cụ bằng cách Click chuột vào dấu + ở đầu nhóm Khi đó một danh sách các công cụ trong nhóm sẽ mở ra để ta chọn

8.7 Bộ thiết kế Windows Forms Designer

Visual Studio.NET có một bộ thiết kế form trực quan, bạn sẽ làm quen dần dần bởi vì thường trong các dự án phát triển có thể có rất nhiều Form

Để hiển thị bộ thiết kế Windows Forms Designer ta hiển thị cửa sổ Solution Explorer bằng cách chọn View | Solution Explorer Cửa sổ này chứa toàn bộ các phần tử có sử du ̣ng trong dự án Click chuột vào biểu tượng View Designer trong solution để hiển thị form thiết kế ở dạng trực quan

8.8 Chạy một chương trình Visual Basic

Click chuột vào nút start màu xanh trên thanh công cụ để chạy chương trình (bạn cũng có thể ấn phím F5)

8.9 Cửa sổ thuộc tính Properties

Cho phép thay đổi thông số của đối tượng thiết kế form sau này

Trang 17

8.10 Thoát khỏi Visual Studio.NET

- Lưu lại những gì chúng ta làm bằng cách chọn File | Save all

- Chọn File | Exit để thoát khỏi Visual Studio.NET

Trang 18

Chương 2 Cơ sở lập trình trong Visual Basic.NET

2.1 Kiểu dữ liệu cơ sở

Chương trình sử dụng các biến để lưu trữ các giá trị Mỗi biến phải có một kiểu

dữ liệu xác định Một kiểu của biến sẽ xác định các giá trị mà biến đó có thể nhận Visual Basic cung cấp các kiểu dữ liệu cơ bản sau:

(byte)

Byte Các số nguyên trong đoạn từ 0 đến 255 1

Decimal Các số nguyên trong đoạn từ - 295 đến 295 – 1 16

Double Các số thực dấu phẩy động 64 bits 8

Integer Các số nguyên trong đoạn từ - 231 đến 231 – 1 4

Long Các số nguyên trong đoạn từ - 263 đến 263 – 1 8

Short Các số nguyên trong đoạn từ - 231

đến 231 – 1 4 Single Các số thực dấu phẩy động 32 bits 4

Một thay đổi lớn cho Data Type của VB.NET, là những biến dùng Data Type cơ bản như Integer, Single, Boolean,.v.v đều là những biến kiểu đối tượng (Objects)

Chúng đều được xuất phát từ lớp căn bản nhất tên Object trong VB.NET

2.2 Khai báo biến

2.2.1 Khai báo nhiều biến

Biến được sử dụng để lưu trữ và đọc thông tin trong quá trình thực hiện chương trình Để khai báo biến ta dùng từ khoá Dim và chỉ ra tên biến cùng với kiểu dữ liệu của biến Trong VB 6.0 ta có thể khai báo nhiều biến trên cùng một hàng như:

Trang 19

Ví dụ :

Dim X As Integer = 12

2.2.1 Phạm vi hoạt động của biến

Tuỳ theo vị trí khai báo biến và các từ khoá quy định phạm vi mà ta sử dụng biến

sẽ có phạm vi hoạt động khác nhau

VB.NET cho phép khai báo biến trong một khối lệnh IF THEN END IF, DO LOOP, WHILE END WHILE, FOR NEXT, v.v vì vậy, những biến này chỉ có phạm vi hoạt động ở trong khối lệnh đó Khi chương trình thực hiê ̣n xong khối lê ̣nh đó thì các biến cũng bi ̣ hủy

Ngoài ra , trong VB.NET ta có thể quyết định giới hạn việc truy cập một biến bằng cách dùng các từ khoá sau:

2.3 Khai báo hằng (Constants)

Hằng là đại lượng mà giá trị không thay đổi trong suốt quá trình thực hiện chương trình Khi khai báo hằng trong VB.NET ta phải khai rõ kiểu dữ liệu của nó

là String, Integer, hay Boolean v.v.:

Public Const myConstantString As String = "happy"

Public Const maxStudent As Integer = 30

Trang 20

2.4.2 Toán tử gán

Toán tử gán dùng để gán giá trị cho một biến, một phần tử mảng Toán tử gán được ký hiệu bằng dấu bằng ( = )

Ví dụ:

Trang 21

9 Log Tính logarit tự nhiên

10 Log10 Tính logarit cơ số 10

Trang 22

2.5.2 Hàm thời gian

(1) Hàm Day(d): Hàm trả về số ghi ngày của d

Ví dụ: Day(#12/25/2006#) sẽ cho kết quả là 25

(2) Hàm Month(d): Hàm trả về số ghi tháng của d

Ví dụ: Month(#11/30/2006#) sẽ cho kết quả là 11

(3) Hàm Year(d): Hàm trả về số ghi năm của d

Ví dụ: Year(#12/25/2006#) sẽ cho kết quả là 2006

(4) Hàm Now: Hàm trả về ngày tháng năm và giờ của hệ thống máy tính

(5) Hàm Weekday (d): Hàm cho biết thứ mấy trong tuần

Ví dụ: Weekday(#11/13/2006#)) cho kết quả là 3 (thứ 3 trong tuần)

Weekday(#11/19/2006#) sẽ cho kết quả là 1 (thứ 1, tức là ngày chủ nhật trong tuần) (6) Hàm hour (<thời gian>): Hàm cho biết giờ ứng với <thời gian>

Ví dụ: Hour(#10:20:15#) sẽ cho kết quả là 10

(7) Hàm Minute(<thời gian>): Hàm cho biết phút ứng với <thời gian>

Ví dụ: Minute(#10:20:15#) sẽ cho kết quả là 20

(8) Hàm Second(<thời gian>): Hàm cho biết giây ứng với <thời gian>

Ví dụ: Second(#10:20:15#) sẽ cho kết quả là 15

2.5.3 Hàm chuyển đổi

(1) Hàm ToBoolean(x): Hàm trả về giá trị kiểu Boolean của x

(2) Hàm ToByte(x): Hàm trả về giá trị kiểu Byte của x

(3) Hàm ToChar(x): Hàm trả về giá trị kiểu Char của x

(4) Hàm ToDate(x): Hàm trả về giá trị kiểu Date của x

(5) Hàm ToDouble(x): Hàm trả về giá trị kiểu Double của x

(6) Hàm ToDecimal(x): Hàm trả về giá trị kiểu Decimal của x

(7) Hàm ToInt16(x): Hàm trả về giá trị kiểu số nguyên 2 bytes

(8) Hàm ToInt32(x): Hàm trả về giá trị kiểu số nguyên 4 bytes

(9) Hàm ToInt64(x): Hàm trả về giá trị kiểu số nguyên 8 bytes

(10) Hàm ToSingle(x): Hàm trả về giá trị kiểu số thực 4 bytes

(11) Hàm ToString(x): Hàm trả về giá trị kiểu chuỗi

Oct(188) cho giá trị là 274

Trang 23

(14) Hàm Hex(x) hoặc Hex$(x): Hàm trả về giá trị số hệ thập lục phân Variant hoặc chuỗi tương ứng của x

Ví dụ:

Hex(2006) cho giá trị là 7D6

2.5.4 Hàm kiểm tra kiểu dữ liệu

(1) Hàm IsArray(x): Nếu x có kiểu dữ liệu là mảng thì hàm trả về giá trị True, ngược lại hàm trả về giá trị False

(2) Hàm IsDate(x): Nếu x có thể chuyển đổi sang định dạng thời gian thì hàm trả về giá trị True, ngược lại hàm trả về giá trị False

(3) Hàm IsNumeric(x): Nếu x có thể chuyển đổi sang định dạng số thì hàm trả về giá trị True, ngược lại hàm trả về giá trị False

(4) Hàm VarType(x): Kiểm tra kiểu dữ liệu

2.6 Quy ước viết lệnh

2.6.1 Viết lời chú thích

Khi ta lập trình ta thường hay đặt các dòng chú thích ở đâu đó trong chương trình

để diễn giải ý nghĩa của một quá trình xử lý để về sau ta hoặc người khác đọc lại mã chương trình có thể hiểu nó một cách dễ dàng Một lời chú thích trong VB.Net bắt đầu bằng dấu nháy đơn tiếp theo là lời giải thích trên cùng một hàng Ví dụ:

„đây là một lời giải thích

2.6.2 Ngăn cách các câu lệnh trên một dòng

Ta có thể viết nhiều câu lệnh trên một dòng, và các câu lệnh đó phải ngăn cách nhau bởi dấu hai chấm “:”

StartTime = Now: EndTime = StartTime + 10

2.6.3 Kéo dài câu lệnh trên hai dòng

Khi có những câu lệnh dài chúng ta có thể viết câu lệnh đó trên nhiều dòng, và dùng kí hiệu gạch nối (_) để nối các dòng đó

Ví dụ:

TxtKetqua = "* " & TxtSoN & " số Fibonaci đầu tiên là " _

& xd & " " & so(1) & " , " & so(2) & _

Trang 24

& TxtSoN & " là " & so(TxtSoN)

2.7 Lệnh IF…THEN

Câu lệnh IF cho phép lựa chọn một trong hai nhánh tùy thuộc vào giá trị của một biểu thức lôgic(điều kiện) là Đúng (True) hay Sai (False)

Cú pháp :

Dạng 1 If <điều kiện> Then <lệnh>

Dạng 2 If <điều kiện> Then

If <điều kiện1> Then

Trang 25

End If

End If

2.8 Câu lệnh Select Case

Cú pháp:

Select Case <Biểu thức kiểm tra>

[Case <Danh sách biểu thức 1>

Trang 26

For <biến đếm> = <giá trị đầu> To <giá trị cuối> [Step <bước nhảy>]

Dim Files As String() = Directory.GetFiles(“.”)

Dim FileName As String

For Each Filename In Files

Trang 27

Loop while (điều kiện lặp)

Hai dạng trên chỉ khác nhau ở chỗ: dạng 1 kiểm tra điều kiện trước khi thực hiện khối lệnh còn đối với dạng 2 thì thực hiện khối lệnh rồi mới kiểm tra điều kiện

2.10 Phương thức Console.Read và Console.Readln

Phương thức Console.Read trả về tất cả các ký tự đưa vào từ bàn phím cho tới khi gặp dấu cách hoặc phím Tab Phương thức Console.Read trả về tất cả các ký tự đưa vào từ bàn phím cho tới khi gặp ký tự Enter

Để gán giá trị mà người dùng nhập vào từ bàn phím cho một biến ta dùng lệnh gán

Biến = Console.Readln()

Trong các ứng dụng Console để dừng màn hình xem kết quả ta sử dụng Console.Readln(), khi đó chương trình sẽ chờ cho tới khi ta nhấn phím Enter

2.11 Phương thức Console.Write và phương thức Console.Writeline

Để hiện thị dữ liệu ra màn hình ở chế độ Console ta dùng phương thức Console.Write hoặc Console.Writeline Sự khác nhau giữa hai phương thức lá Console.Writeline kết hợp thêm ký tự xuống dòng và chuyển con trỏ về đầu hàng tiếp theo

Để hiện thị chuỗi ký tự, đặt chuỗi ký tự đó trong dấu nháy kép và truyền cho phương thức Console.Write hoặc Console.Writeline Ví dụ:

Console.Writeline(“Hello, everybody!”)

Chúng ta có thể quy định độ rộng và khuôn dạng dữ liệu để hiển thị các giá trị ra màn hình bằng cách sử dụng mẫu định dạng sau đó truyền biểu thức theo thứ tự của định dạng Khuôn dạng được xác định bằng một giá trị quy định độ rộng sau đó đến dấu hai chấm rồi đến dấu hiệu mô tả kiểu Các dấu hiệu mô tả kiểu bao gồm:

C hoặc c Tiền tệ

D hoặc d Decimal

E hoặc e Số thực kiểu số chấm khoa học

F hoặc f Số thực dấu phẩy động

Trang 28

N hoặc n Số thông thường

Có những lý do sau mà chúng ta nên sử dụng hàm (thủ tục) khi một viết chương trình:

- Ta có thể chuyển những đoạn chương trình được lặp đi lặp lại nhiều lần ở những chỗ khác nhau trong chương trình thành một chương trình con Khi cần, ta chỉ việc gọi chương trình con đó ra (với các tham số tương ứng cần thiết) mà không phải viết lại cả khúc chương trình đó

- Phân tách một chương trình lớn và dài (giải quyết một vấn đề lớn) thành những chương trình con, những khối, những module (tương ứng với các vấn đề nhỏ hơn)

để dễ kiểm tra và tìm lỗi chương trình Đó cũng là ý tưởng cơ bản của khái niệm lập trình có cấu trúc và còn được gọi là nguyên tắc “Chia để trị”

Trang 29

temp = so1: so1 = so2: so2 = temp

End Sub

Hàm có trả về giá trị Hàm cũng là một dãy các lệnh nhằm thực hiện một công việc nào đấy, nhưng khác với thủ tục, hàm sau khi thực hiện xong sẽ trả về một giá trị nào đó thông qua câu lệnh Return

Public Function Giaithua(n As Integer) As Long

Dim i As Integer, GT As Long

Trong VB.NET ta có thể dùng từ khoá để đặt tên cho chương trình con bằng cách

để nó giữa ngoặc vuông Giả sử ta muốn dùng chữ Compare làm tên một Function,

ta sẽ viết như sau:

Public Function [Compare] (ByVal v1 As Integer, ByVal v2 As Integer) As Boolean

1.12.3 Lời gọi thủ tục, hàm

Cách goi thủ tục :

Để gọi thủ tục ta dùng tên thủ tục và các tham số nếu có theo cú pháp:

<Tên thủ tục> (<danh sách tham số>)

Ví dụ:

Swap (a, b)

Cách gọi hàm:

Trang 30

Khác với thủ tục, chúng ta phải có một biến có kiểu dữ liệu thích hợp (trùng với kiểu dữ liệu trong phần khai báo kiểu giá trị trả về của hàm) để lưu giá trị trả về khi hàm được thực hiện với các tham số thực truyền vào

<Biến> = <Tên hàm>(danh sách tham số thực)

Ví dụ:

Ketqua = giaithua(txtso.text)

2.12.4 Thoát khỏi thủ tục / hàm

Exit sub dùng để thoát khỏi thủ tục, Exit Function dùng để thoát khỏi hàm

2.12.5 Tham số và việc truyền tham số cho chương trình con

Tham số hình thức/Tham số thực sự

Tham số hình thức là các tham số được đưa ra trong phần khai báo hàm, nó chỉ ra kiểu dữ liệu của các tham số của chương trình con Trong chương trình con các tham số kiểu này chỉ có tên, chứ chưa có giá trị, chỉ khi nào xuất hiện lời gọi chương trình con, các tham số mới được truyền giá trị từ bên ngoài và chương trình

con sẽ được hoạt động với bộ giá trị ấy Chính vì vậy chúng được gọi là tham số hình thức Các biến bên ngoài truyền vào chương trình con được gọi là các tham số thực sự, vì chúng thực sự tham gia vào chương trình con với tư cách là một giá trị

Khi gọi đến chương trình con thì phải có sự tương ứng 1-1 giữa tham số thực sự và tham số hình thức cả về thứ tự và kiểu dữ liệu

Truyền tham số theo tham biến/tham trị

Khi khai báo thủ tục/hàm, sử dụng từ khóa ByVal trước tham số để quy định tham số đó sẽ được truyền theo tham trị; sử dụng từ khóa ByRef trước tham số để quy định tham số đó được truyền theo tham biến (mặc định của VB.Net là truyền theo tham trị)

Truyền tham số theo trị (tham trị) tức là cái mà chúng ta sử dụng trong chương trình con là bản sao của tham số thực được truyền vào chương trình con, vì vậy việc truyền theo trị có những đặc điểm sau:

Nếu trong chương trình con có những lệnh làm thay đổi giá trị của tham số hình thức thì những thay đổi này không có ảnh hưởng gì đến giá trị của tham số thực

Trang 31

được truyền ở đầu vào khi chúng ta gọi chương trình con, vì những thay đổi này chỉ thực hiện trên bản sao tương ứng

Tốn một ít bộ nhớ và thời gian cho việc sao chép (tùy theo kích thước của tham

số tương ứng)

Truyền tham số theo biến (tham biến) được thực hiện vào chính địa chỉ của biến được truyền, nghĩa là mọi lệnh của chương trình con đối với tham số hình thức cũng chính là các lệnh đối với biến này Vì vậy việc truyền theo tham biến có những đặc điểm sau:

- Nếu trong chương trình con có những lệnh làm thay đổi giá trị của tham số hình thức thì những thay đổi này cũng chính là những thay đổi trên biến được truyền Hay nói cách khác những sự thay đổi đó vẫn có tác dụng đối với các tham số thực truyền vào khi kêt thúc chương trình con

- Không tốn thêm bộ nhớ và thời gian do không phải sao chép

Ví dụ: chúng ta có hai hàm Swap1 và Swap2 như sau

Private Sub Swap1(ByRef so1 As Integer, ByRef so2 As Integer)

Trang 32

Tham số tùy chọn

Khi chúng ta muốn quy định một tham số của hàm hay thủ tục là tham số tùy chọn (tức là có thể có hoặc bỏ qua trong lời gọi hàm) thì chúng ta dùng từ khóa Optional trước khai báo tham số của hàm/thủ tục Tham số tùy chọn luôn được khai báo cuối cùng trong danh sách tham số và phải được khởi gán giá trị ngay từ khi khai báo

2.12.6 Biến địa phương/biến toàn cục

Khái niệm địa phương và toàn cục của phạm vi của biến là đề cập đến phạm vị

sử dụng và có tác động của biến đó Nếu nó chỉ có phạm vi là trong thủ tục/hàm thì

nó được gọi là biến địa phương, còn nếu nó có phạm vi sử dụng trong toàn Project

thì nó được gọi là biến toàn cục Tuy nhiên trong phạm vi một form module, thì

những biến khai báo trong phần General lại vừa là biến địa phương vừa là biến toàn cục, vì vậy khái niệm địa phương hay toàn cục chỉ có tính tương đối Sau đây là một

số chú ý về biến địa phương/toàn cục trong Visual Basic:

Những biến được khai báo trong một Sub/Function trong phạm vi Form hay của Bas Module thì được gọi là biến địa phương và chỉ có phạm vi sử dụng trong Sub/Fuction

đó

Những biến được khai báo với từ khóa Private/Dim trong phần General của Form thì chỉ có phạm vi sử dụng trong Form, và toàn bộ các Sub/Function trong phạm vi Form đó, nhưng không thể sử dụng bên ngoài form Vì vậy nó là địa phương trong toàn Project, nhưng là toàn cục trong phạm vi Form

Những biến được khai báo với từ khóa Public trong phần General của Form thì

có phạm vi sử dụng trong toàn bộ Project, vì vậy nó có phạm vi toàn cục Tuy nhiên

ở bên ngoài Form mà muốn sử dụng biến đó thì phải sử dụng theo cú pháp sau:

<Tên Form>.<Tên biến>

Trang 33

Những biến được khai báo với từ khóa Public trong phần General của Bas Module thì có phạm vi sử dụng trong toàn bộ Project và khi sử dụng nó ở bên ngoài Bas Module thì chỉ cần gọi tên biến đó Những biến này cũng có phạm vi toàn cục

Ví dụ : xét ví dụ sau về phạm vi địa phương/toàn cục của biến

„Các biến a, b được khai báo trong phần General của Form

Dim a As Byte, b As Byte

Public Sub Dia_Phuong()

Dim i As Byte, b As Byte

Viết lệnh cho sự kiện nhấn nút lệnh của nút lệnh cmdTest

Private Sub cmdTest_Click()

Trang 34

2.13 Kiểu mảng (Array)

Khi ta muốn có nhiều biến có cùng kiểu dữ liệu ta dử dụng kiểu mảng Để khai báo một biến mảng ta đặt tên biến, kiểu dữ liệu và chỉ rõ số phần tử của mảng Ví dụ:

Dim myArray(10) As Integer

Kết quả là một mảng có 11 phần tử và chỉ số của các phần tử từ 0 đến 10

Trong VB.NET không có từ khóa Option Base để chọn chỉ số mảng là bắt đầu từ

0 hay 1 và mọi mảng đều có chỉ số phần tử bắt đầu từ 0

Ta cũng có thể khai báo mảng và khởi gán giá trị cho các phần tử như sau:

Dim myArray() As Integer = { 1, 5, 8, 16 }

Câu lệnh trên làm hai chuyện: quyết định cỡ của mảng và cho các phần tử trị số khởi đầu Để dùng tính năng này, bạn không được nói rõ kích thước của mảng, mà

để cho chương trình tự tính

Trong VB.NET có thể dùng từ khoá Preserve để giữ nguyên trị số của các phần

tử trong một mảng khi bạn khai báo la ̣i kích thước (ReDim) của nó Tuy nhiên có một giới hạn cho mảng với hơn một chiều là ta chỉ có thể thay đổi kích thước của chiều cuối cùng (bên phải), nên những hàng code sau đây hợp lệ:

Dim myArray(,) As String

ReDim myArray(5, 5)

ReDim Preserve myArray(5, 8)

2.14 Kiểu dữ liệu do người dùng tự định nghĩa

Kiểu dữ liệu do người dùng tự định nghĩa rất tiện cho ta gom các thành phần dữ liệu liên hệ lại thành một kiểu dữ liệu có cấu trúc Trong VB.NET ta dùng nó như sau:

Public Structure Tên_kiểu

„ Khai báo các thành phần (trường)

End Structure

Ví dụ:

Public Structure UStudent

Public FullName As String

Trang 35

Public Age As Integer

End Structure

Lưu ý các trường cần phải được khai báo với các từ khoá: Dim, Public, Private hay Friend, nhưng không thể dùng Protected vì Structure không thể thừa kế từ một Structure khác Sở dĩ, không thể dùng Private là vì bên trong Structure có thể có thuộc tính (Property)

2.15 Lơ ́ p Collections

VB.NET cho ta một thành phần collection rất mạnh trong Namespace System.Collections Vì Collection là một trong những công cụ rất thông dụng và hiệu năng trong VB.NET Dưới đây là danh sách các collections ta sẽ dùng thường xuyên:

2.16 Bẫy lỗi

VB.NET cho ta sử dụng cấu trúc Try Catch Finally End để xử lý lỗi Thí

dụ như trong bài toán chia dưới đây, nếu bị lỗi Division by 0 thì ta sẽ cho kết quả bằng 0 Dù có error hay không, chương trình vẫn hiển thị kết quả trong cửa sổ Output qua câu lệnh Console.WriteLine(result) trong phần Finally:

Try

result = a / b ' nếu phần này có lỗi thì nhảy đến phần Catch để thực hiê ̣n

Catch

Trang 36

có thể dùng Catch giống như Select Case để có một cách xử lý cho mỗi error: Try

' Main code goes here

Catch When Err.Number=5

Hai cách viết lệnh ở trên có thể được gộp lại thành:

Catch e As Exception When Err.Number = 5

Trang 37

Chương 3 Lập trình hướng đối tượng 3.1 Tạo một lớp (Class) mới

Trong một *.vb file ta có thể viết nhiều lớp, mã lệnh để định nghĩa mỗi lớp nằm trong một khối Class End Class Thí dụ:

Public Class Car

Public Color As String

Private _speed As Integer

Public ReadOnly Property Speed() As Integer

3.2 Lớp và không gian tên (namespace)

.NET dùng Namespace để sắp đặt các lớp cho thứ tự theo nhóm, loại

Namespaces được khai báo với một khối có cấu trúc giống như sau:

Namespace Tên_Namespace

Public Class Tên_lớp

„ Khai báo các thành phần của lớp End Class

End Namespace

Ví dụ:

Namespace ObjectClass

Public Class Car

Public Color As String

Private _speed As Integer

Public ReadOnly Property Speed() As Integer

Get

Return _speed

End Get

Trang 38

Private myObject As ObjectClass.Car

Một file nguồn có thể chứa nhiều Namespace, và bên trong mỗi Namespace lại

có thể có nhiều Class Ngoài ra, Các lớp thuộc về cùng một Namespace có thể nằm trong nhiều files khác nhau trong một VB.NET project Thí dụ ta có một file nguồn với code như sau:

End Namespace

Vậy thì trong Namespace ObjectClass ta có hai lớp: Car và Plane Mặc định, Namespace gốc (Root Namespace) của một VB.NET project là tên của project ấy Khi ta dùng Namespace block structure là chúng ta đang thêm một tầng tên vào Root Namespace Do đó, trong thí dụ trên nếu tên project là MyProject thì, từ bên ngoài project ấy, ta có thể khai báo một biến như sau:

Private myObject As MyProject.ObjectClass.Car

3.3 Khai báo phương thức (Methods)

Methods trong VB.NET có hai loại: Sub và Function

Cú pháp của phương thức dạng Sub:

Trang 39

Public Sub Tên_phương_thức(Danh sách tham số)

' Các câu lệnh

End Sub

Cú pháp của phương thức dạng Function:

Public Function Tên_phương_thứ c(Danh sách tham số) As Kiểu_dữ_liê ̣u

• Private - chỉ cho phép hoạt động trong cùng Class

• Friend - chỉ cho phép hoạt động trong cùng project/component

• Public - cho phép sử du ̣ng trong cùng solution

• Protected - cho phép hoạt động trong cả lớp con, cháu

• Protected Friend - cho phép hoạt động trong cùng project/component hay trong cả lớp con, cháu

Ví dụ: Trong lớp Car ta khai báo hai phương thức sau:

Public Sub Accelerate(Byval accelerateBy As Integer)

Trang 40

3.4 Khai báo thuộc tính (Properties)

Trong VB.NET một thuô ̣c tính được khai báo giống như 1 biến, ta cũng có thể khai báo và khởi gán giá tri ̣ cho thuô ̣c tính

Ví dụ trong lớp Car ta khai báo thêm thuộc tính _numOfDoor như sau:

Private _numOfDoor As Integer = 4

Đối với thuộc tính ta dùng hai phương thức Get và Set để làm việc với thuộc tính Phương thức Set dùng để thiết lâ ̣p giá tri ̣ cho thuô ̣c tính , còn phương thức Get dùng để nhận lại giá trị của thuộc tính

Cú pháp của Get và Set như sau

Ví dụ trong lớ p Car , đối với thuô ̣c tính _numOfDoor ta có các phương thức Get

và Set được viết như sau:

Public Property NumOfDoor() As Integer

Get

Return _numOfDoor

End Get

Set(ByVal value As Integer)

If value >= 2 And value <= 5 Then

_numOfDoor = value

End If

End Set

End Property

Ngày đăng: 08/06/2021, 14:12

w