Tải bản đầy đủ (.pdf) (20 trang)

ĐỒ ÁN TÌM HIỂU NGÔN NGỮ C# VIẾT MỘT ỨNG DỤNG MINH HOẠ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (416.59 KB, 20 trang )

TR

NG Đ I H C KHOA H C T

NHIÊN

KHOA CÔNG NGH THÔNG TIN
B MÔN CÔNG NGH PH N M M

PH M VĔN VI T - TR

NG L P Vƾ

TÌM HI U NGÔN NG
VI T M T

C# VÀ

NG D NG MINH H A

Đ ÁN T T NGI P

GIÁO VIÊN H

NG D N

NGUY N T N TR N MINH KHANG

TP. HCM 2002



TR

NG Đ I H C KHOA H C T

NHIÊN

KHOA CÔNG NGH THÔNG TIN
B MÔN CÔNG NGH PH N M M

PH M VĔN VI T - TR

TÌM HI U NGƠN NG

NG L P Vƾ

C# VÀ VI T M T

GIÁO VIÊN H

NG D NG MINH H A

NG D N

NGUY N T N TR N MINH KHANG

TP. HCM 2002


Lời cám ơn
Đ có th hồn t t đ


c bài đ án này, tr

c tiên ph i k đ n công s c c a th y

Nguy n T n Tr n Minh Khang. Chúng em kính l i c m n đ n th y đã t n tình h

ng

d n và giúp đỡ trong th i gian th c hi n đ án này.
Chúng em xin t lòng bi t n sâu s c đ i v i gia đình đã đ ng viên, t o đi u ki n đ
th c hi n t t bài đ án. Xin cám n cha, mẹ, anh, ch , em!
Chúng em cũng xin chân thành c m n đ n các th y cô khoa Công ngh thông tin
tr

ng Đ i h c Khoa h c T nhiên Thành ph H Chí Minh đã truy n đ t nh ng ki n

th c, kinh nghi m quí báu cho chúng em trong quá trình h c t p t i tr

ng.

Chúng em cũng xin chân thành c m n đ n các b n bè đã giúp đỡ tài li u, trao đổi h c
thu t m i có th th c hi n đ án này. Xin g i l i c m n đ n các b n H Ng c Huy,
Tr n Th Anh, Bùi Thanh Tu n...

Thành ph H Chí Minh, ngày 03 tháng 8 nĕm 2002
Sinh viên
Ph m Vĕn Vi t
Tr


ng L p Vƿ


Mục lục
L i cám n.......................................................................................................................3
M c l c ............................................................................................................................4
Tóm t t.............................................................................................................................1
Ph n 1 Tìm hi u ngơn ng C#.........................................................................................1
Ch ng 1 C# và .Net Framework................................................................................2
1.1 N n t ng c a .NET.............................................................................................2
1.2 .NET Framework ...............................................................................................3
1.3 Biên d ch và ngôn ng trung gian (MSIL).........................................................4
1.4 Ngôn ng C# ......................................................................................................5
Ch ng 2 Kh i đ u......................................................................................................6
2.1 L p, đ i t ng và ki u .......................................................................................6
2.2 Phát tri n “Hello World”....................................................................................8
Ch ng 3 Nh ng c s c a ngôn ng C# .................................................................12
3.1 Các ki u............................................................................................................12
3.2 Bi n và hằng.....................................................................................................14
3.3 Bi u th c ..........................................................................................................16
3.4 Kho ng tr ng....................................................................................................16
3.5 Câu l nh ...........................................................................................................16
3.6 Toán t .............................................................................................................19
3.7 T o vùng tên.....................................................................................................21
3.8 Chỉ th ti n x lý ..............................................................................................22
Ch ng 4 L p và đ i t ng.......................................................................................24
4.1 Đ nh nghƿa l p..................................................................................................24
4.2 T o đ i t ng ...................................................................................................25
4.3 S d ng các thành viên tƿnh .............................................................................27
4.4 H y đ i t ng ..................................................................................................29

4.5 Truy n tham s .................................................................................................30
4.6 N p ch ng ph ng th c và hàm d ng .............................................................32
4.7 Đóng gói d li u v i property..........................................................................33
Ch ng 5 Thừa k và Đa hình...................................................................................35
5.1 Đặc bi t hố và tổng quát hoá..........................................................................35


5.2 S k thừa.........................................................................................................35
5.3 Đa hình .............................................................................................................37
5.4 L p trừu t ng .................................................................................................38
5.5 L p g c c a t t c các l p: Object...................................................................39
5.6 Ki u Boxing và Unboxing ...............................................................................40
5.7 L p l ng ...........................................................................................................42
Ch ng 6 N p ch ng toán t .....................................................................................44
6.1 Cách dùng từ khoá operator .............................................................................44
6.2 Cách hổ tr các ngôn ng .Net khác ................................................................44
6.3 S h u ích c a các tốn t ...............................................................................44
6.4 Các tốn t logic hai ngơi ................................................................................45
6.5 Tốn t so sánh bằng........................................................................................45
6.6 Toán t chuy n đổi ki u (ép ki u) ...................................................................45
Ch ng 7 C u trúc.....................................................................................................48
7.1 Đ nh nghƿa c u trúc ..........................................................................................48
7.2 Cách t o c u trúc..............................................................................................49
Ch ng 8 Giao di n...................................................................................................50
8.1 Cài đặt m t giao di n .......................................................................................50
8.2 Truy xu t ph ng th c c a giao di n ..............................................................52
8.3 N p ch ng ph n cài đặt giao di n ....................................................................54
8.4 Th c hi n giao di n m t cách t ng minh ......................................................55
Ch ng 9 Array, Indexer, and Collection .................................................................58
9.1 M ng (Array) ...................................................................................................58

9.2 Câu l nh foreach ..............................................................................................59
9.3 Indexers ............................................................................................................62
9.4 Các giao di n túi ch a......................................................................................65
9.5 Array Lists........................................................................................................65
9.6 Hàng đ i...........................................................................................................65
9.7 Stacks ...............................................................................................................66
9.8 Dictionary.........................................................................................................66
Ch ng 10 Chu i.......................................................................................................67
10.1 T o chu i m i ................................................................................................67
10.2 Ph ng th c ToString() .................................................................................67
10.3 Thao tác chu i ................................................................................................68
10.4 Thao tác chu i đ ng.......................................................................................70
Ch ng 11 Qu n lý l i...............................................................................................72
11.1 Ném và b t bi t l ..........................................................................................73
11.2 Đ i t ng Exception ......................................................................................80
11.3 Các bi t l t t o ............................................................................................82
11.4 Ném bi t l l n n a. .......................................................................................83


Ch ng 12 Delegate và Event ...................................................................................87
12.1 Delegate ( y thác, y quy n) .........................................................................87
12.2 Event (S ki n) ............................................................................................101
Ch ng 13 L p trình v i C#....................................................................................109
13.1 ng d ng Windows v i Windows Form.....................................................109
Ch ng 14 Truy c p d li u v i ADO.NET ...........................................................144
14.1 C s d li u và ngôn ng truy v n SQL ....................................................144
14.2 M t s lo i k t n i hi n đang s d ng .........................................................144
14.3 Ki n trúc ADO.NET ....................................................................................145
14.4 Mơ hình đ i t ng ADO.NET .....................................................................146
14.5 Trình cung c p d li u (.NET Data Providers)............................................148

14.6 Kh i s v i ADO.NET ................................................................................148
14.7 S d ng trình cung c p d li u đ c qu n lý ..............................................151
14.8 Làm vi c v i các đi u khi n k t bu c d li u .............................................152
14.9 Thay đổi các b n ghi c a c s d li u........................................................161
Ch ng 15 ng d ng Web v i Web Forms............................................................173
1.1
Tìm hi u v Web Forms............................................................................173
15.1 Các s ki n c a Web Forms ........................................................................174
15.2 Hi n th chu i lên trang................................................................................175
15.3 Đi u khi n xác nh n h p..............................................................................178
15.4 M t s ví d m u minh h a .........................................................................179
Ch ng 16 Các d ch v Web...................................................................................192
Ch ng 17 Assemblies và Versioning ....................................................................196
17.1 T p tin PE.....................................................................................................196
17.2 Metadata.......................................................................................................196
17.3 Ranh gi i an ninh .........................................................................................196
17.4 S hi u phiên b n (Versioning) ...................................................................196
17.5 Manifest........................................................................................................196
17.6 Đa Module Assembly...................................................................................197
17.7 Assembly n i b (private assembly)............................................................198
17.8 Assembly chia sẻ (shared assembly)............................................................198
Ch ng 18 Attributes và Reflection ........................................................................200
18.1 Attributes......................................................................................................200
18.2 Attribute mặc đ nh (intrinsic attributes).......................................................200
18.3 Attribute do l p trình viên t o ra..................................................................201
18.4 Reflection .....................................................................................................203
Ch ng 19 Marshaling và Remoting.......................................................................204
19.1 Mi n ng D ng (Application Domains) .....................................................204
19.2 Context .........................................................................................................206
19.3 Remoting ......................................................................................................208



Ch ng 20 Thread và S Đ ng B .........................................................................215
20.1 Thread ..........................................................................................................215
20.2 Đ ng b hóa (Synchronization) ...................................................................216
20.3 Race condition và DeadLock .......................................................................221
Ch ng 21 Lu ng d li u........................................................................................223
21.1 T p tin và th m c .......................................................................................223
21.2 Đ c và ghi d li u ........................................................................................230
21.3 B t đ ng b nh p xu t .................................................................................235
21.4 Serialization..................................................................................................238
21.5 Isolate Storage..............................................................................................244
Ch ng 22 L p trình .NET và COM .......................................................................246
22.1 P/Invoke .......................................................................................................246
22.2 Con tr ..........................................................................................................248
Ph n 2 Xây d ng m t ng d ng minh h a..................................................................250
Ch ng 23 Website d y h c ngôn ng C# ..............................................................251
23.1 Hi n tr ng và yêu c u...................................................................................251
23.2 Phân tích h ng đ i t ng...........................................................................258
23.3 Thi t k h ng đ i t ng.............................................................................262


Tóm tắt
Đ tài này t p trung tìm hi u toàn b các khái ni m liên quan đ n ngơn ng C#.
B i vì C# đ c Microsoft phát tri n nh là m t thành ph n c a khung ng d ng
.NET Framework và h ng Internet nên đ tài này bao g m hai ph n sau:
Phần 1: Tìm hiểu về ngơn ngữ C#
Vi c tìm hi u bao g m c các ki n th c n n t ng v công ngh .NET Framework,
chu n b cho các khái ni m liên quan gi a C# và .NET Framework. Sau đó tìm
hi u v b cú pháp c a ngôn ng này, bao g m tồn b t p l nh, từ khóa, khái

ni m v l p trình h ng đ i t ng theo C#, các h tr l p trình h ng
component ... Sau cùng là cách l p trình C# v i ng d ng Window cho máy đ
bàn và C# v i các công ngh hi n đ i nh ASP.NET. ADO.NET, XML cho l p
trình Web.

Phần 2: Xây dựng một ng dụng
Ph n này là báo cáo v ng d ng minh h a cho vi c tìm hi u trên. Tên ng
d ng là Xây d ng m t Website d y h c C#. Đây là ng d ng Web cài đặt bằng
ngôn ng C# và ASP.NET. Trong đó ASP.NET đ c dùng đ xây d ng giao
di n t ng tác v i ng i dùng; cịn C# là ngơn ng l p trình bên d i. ng d ng
có thao tác c s d li u (Microsoft SQL Server) thơng quan mơ hình
ADO.NET.


Phần 1
Tìm hiểu ngơn ngữ C#

1


C# và .Net Framework

Gvhd: Nguy n T n Tr n Minh Khang

Chương 1 C# và .Net Framework
M c tiêu c a C# là cung c p m t ngôn ng l p trình đ n gi n, an tồn, hi n đ i,
h ng đ i t ng, đặt tr ng tâm vào Internet, có kh nĕng th c thi cao cho môi
tr ng .NET. C# là m t ngôn ng m i, nh ng tích h p trong nó nh ng tinh hoa c a
ba th p kỷ phát tri n c a ngơn ng l p trình. Ta có th d dàng th y trong C# có
nh ng đặc tr ng quen thu c c a Java, C++, Visual Basic, …

Đ tài này đặt tr ng tâm gi i thi u ngơn ng C# và cách dùng nó nh là m t cơng
c l p trình trên n n t ng .NET. V i ngôn ng C++, khi h c nó ta khơng c n quan
tâm đ n môi tr ng th c thi. V i ngôn ng C#, ta h c đ t o m t ng d ng .NET,
n u l là ý này có th b lỡ quan đi m chính c a ngơn ng này. Do đó, trong đ tài
này xét C# t p trung trong ng c nh c th là n n t ng .NET c a Microsoft và trong
các ng d ng máy tính đ bàn và ng d ng Internet.
Ch ng này trình bày chung v hai ph n là ngôn ng C# và n n t ng .NET, bao
g m c khung ng d ng .NET (.NET Framework)

1.1 Nền tảng c a .NET
Khi Microsoft công b C# vào tháng 7 nĕm 2000, vi c khánh thành nó chỉ là m t
ph n trong s r t nhi u s ki n mà n n t ng .Net đ c công công b . N n t ng .Net
là bô khung phát tri n ng d ng m i, nó cung c p m t giao di n l p trình ng d ng
(Application Programming Interface - API) m i m cho các d ch v và h đi u hành
Windows, c th là Windows 2000, nó cũng mang l i nhi u kỹ thu t khác nổi b t
c a Microsoft su t từ nh ng nĕm 90. Trong s đó có các d ch v COM+, cơng ngh
ASP, XML và thi t k h ng đ i t ng, h tr các giao th c d ch v web m i nh
SOAP, WSDL và UDDL v i tr ng tâm là Internet, t t c đ c tích h p trong ki n
trúc DNA.
N n t ng .NET bao g m b n nhóm sau:
1. M t t p các ngôn ng , bao g m C# và Visual Basic .Net; m t t p các công c
phát tri n bao g m Visual Studio .Net; m t t p đ y đ các th vi n ph c v
cho vi c xây d ng các ng d ng web, các d ch v web và các ng d ng
Windows; cịn có CLR - Common Language Runtime: (ngơn ng th c thi
dùng chung) đ th c thi các đ i t ng đ c xây d ng trên bơ khung này.
2. M t t p các Server Xí nghi p .Net nh SQL Server 2000. Exchange 2000,
BizTalk 2000, … chúng cung c p các ch c nĕng cho vi c l u tr d li u quan
h , th đi n t , th ng m i đi n t B2B, …

2



C# và .Net Framework

Gvhd: Nguy n T n Tr n Minh Khang

3. Các d ch v web th ng m i mi n phí, vừa đ c cơng b g n đ y nh là d
án Hailstorm; nhà phát tri n có th dùng các d ch v này đ xây d ng các ng
d ng đòi h i tri th c v đ nh danh ng i dùng…
4. .NET cho các thi t b không ph i PC nh đi n tho i (cell phone), thi t b game

1.2 .NET Framework
.Net h tr tích h p ngơn ng , t c là ta có th k thừa các l p, b t các bi t l , đa
hình thơng qua nhi u ngôn ng . .NET Framework th c hi n đ c vi c này nh vào
đặc t Common Type System - CTS (h th ng ki u chung) mà t t c các thành ph n
.Net đ u tuân theo. Ví d , m i th trong .Net đ u là đ i t ng, thừa k từ l p g c
System.Object.
Ngồi ra .Net cịn bao g m Common Language Specification - CLS (đặc t ngôn
ng chung). Nó cung c p các qui t c c b n mà ngơn ng mu n tích h p ph i th a
mãn. CLS chỉ ra các yêu c u t i thi u c a ngôn ng h tr .Net. Trình biên d ch
tuân theo CLS s t o các đ i t ng có th t ng h p v i các đ i t ng khác. B th
vi n l p c a khung ng d ng (Framework Class Library - FCL) có th đ c dùng
b i b t kỳ ngôn ng nào tuân theo CLS.
.NET Framework nằm t ng trên c a h đi u hành (b t kỳ h đi u hành nào không
chỉ là Windows). .NET Framework bao bao g m:
• B n ngơn ng chính th c: C#, VB.Net, C++, và Jscript.NET
• Common Language Runtime - CLR, n n t ng h ng đ i t ng cho phát tri n
ng d ng Windows và web mà các ngơn ng có th chia sẻ s d ng.
• B th vi n Framework Class Library - FCL.


Hình 1-1 Kiến trúc khung ng dụng .Net

3


C# và .Net Framework

Gvhd: Nguy n T n Tr n Minh Khang

Thành ph n quan tr ng nh t c a .NET Framework là CLR, nó cung c p mơi tr ng
cho ng d ng th c thi, CLR là m t máy o, t ng t máy o Java. CLR kích ho t
đ i t ng, th c hi n ki m tra b o m t, c p phát b nh , th c thi và thu d n chúng.
Trong Hình 1-1 t ng trên c a CLR bao g m:

• Các l p c s
• Các l p d li u và XML
• Các l p cho d ch v web, web form, và Windows form.

Các l p này đ c g i chung là FCL, Framework Class Library, cung c p API
h ng đ i t ng cho t t c các ch c nĕng c a .NET Framework (h n 5000 l p).
Các l p c s t ng t v i các l p trong Java. Các l p này h tr các thao tác nh p
xu t, thao tác chuổi, vĕn b n, qu n lý b o m t, truy n thông m ng, qu n lý ti u trình
và các ch c nĕng tổng h p khác …
Trên m c này là l p d li u và XML. L p d li u h tr vi c thao tác các d li u
trên c s d li u. Các l p này bao g m các l p SQL (Structure Query Language:
ngơn ng truy v n có c u trúc) cho phép ta thao tác d li u thông qua m t giao ti p
SQL chu n. Ngồi ra cịn m t t p các l p g i là ADO.Net cũng cho phép thao tác
d li u. L p XML h tr thao tác d li u XML, tìm ki m và di n d ch XML.
Trên l p d li u và XML là l p h tr xây d ng các ng d ng Windows (Windows
forms), ng d ng Web (Web forms) và d ch v Web (Web services).


1.3 Biên dịch và ngôn ngữ trung gian (MSIL)
V i .NET ch ng trình khơng biên d ch thành t p tin th c thi, mà biên d ch thành
ngôn ng trung gian (MSIL - Microsoft Intermediate Language, vi t t t là IL), sau
đó chúng đ c CLR th c thi. Các t p tin IL biên d ch từ C# đ ng nh t v i các t p
tin IL biên d ch từ ngôn ng .Net khác.
Khi biên d ch d án, mã ngu n C# đ c chuy n thành t p tin IL l u trên đƿa. Khi
ch y ch ng trình thì IL đ c biên d ch (hay thông d ch) m t l n n a bằng trình
Just In Time - JIT, khi này k t qu là mã máy và b x lý s th c thi.
Trình biên d ch JIT chỉ ch y khi có yêu c u. Khi m t ph ng th c đ c g i, JIT
phân tích IL và sinh ra mã máy t i u cho từng lo i máy. JIT có th nh n bi t mã
ngu n đã đ c biên d ch ch a, đ có th ch y ngay ng d ng hay ph i biên d ch l i.
CLS có nghƿa là các ngơn ng .Net cùng sinh ra mã IL. Các đ i t ng đ c t o theo
m t ngơn ng nào đó s đ c truy c p và thừa k b i các đ i t ng c a ngơn ng
khác. Vì v y ta có th t o đ c m t l p c s trong VB.Net và thừa k nó từ C#.

4


C# và .Net Framework

Gvhd: Nguy n T n Tr n Minh Khang

1.4 Ngôn ngữ C#
C# là m t ngôn ng r t đ n gi n, v i kho ng 80 từ khoá và h n m i ki u d li u
d ng sẵn, nh ng C# có tính di n đ t cao. C# h tr l p trình có c u trúc, h ng đ i
t ng, h ng thành ph n (component oriented).
Tr ng tâm c a ngôn ng h ng đ i t ng là l p. L p đ nh nghƿa ki u d li u m i,
cho phép m r ng ngôn ng theo h ng c n gi i quy t. C# có nh ng từ khố dành
cho vi c khai báo l p, ph ng th c, thu c tính (property) m i. C# h tr đ y đ

khái ni m tr c t trong l p trình h ng đ i t ng: đóng gói, thừa k , đa hình.
Đ nh nghƿa l p trong C# khơng địi h i tách r i t p tin tiêu đ v i t p tin cài đặt nh
C++. H n th , C# h tr ki u s u li u m i, cho phép s u li u tr c ti p trong t p tin
mã ngu n. Đ n khi biên d ch s t o t p tin s u li u theo đ nh d ng XML.
C# h tr khái ni m giao di n, interfaces (t ng t Java). M t l p chỉ có th k
thừa duy nh t m t l p cha nh ng có th cài đặt nhi u giao di n.
C# có ki u cấu trúc, struct (không gi ng C++). C u trúc là ki u h ng nhẹ và b gi i
h n.C u trúc không th thừa k l p hay đ c k thừa nh ng có th cài đặt giao di n.
C# cung c p nh ng đặc tr ng l p trình h ng thành ph n nh property, s ki n và
d n h ng khai báo (đ c g i là attribute). L p trình h ng component đ c h tr
b i CLR thông qua siêu d li u (metadata). Siêu d li u mô t các l p bao g m các
ph ng th c và thu c tính, các thơng tin b o m t ….
Assembly là m t t p h p các t p tin mà theo cách nhìn c a l p trình viên là các th
vi n liên k t đ ng (DLL) hay t p tin th c thi (EXE). Trong .NET m t assembly là
m t đon v c a vi c tái s d ng, xác đ nh phiên b n, b o m t, và phân ph i. CLR
cung c p m t s các l p đ thao tác v i assembly.
C# cũng cho truy c p tr c ti p b nh dùng con tr ki u C++, nh ng vùng mã đó
đ c xem nh khơng an tồn. CLR s không th c thi vi c thu d n rác t đ ng các
đ i t ng đ c tham chi u b i con tr cho đ n khi l p trình viên t gi i phóng.

5


Kh i đ u

Gvhd: Nguy n T n Tr n Minh Khang

Chương 2 Khởi đầu
Ch ng này ta s t o, biên d ch và ch y ch ng trình “Hello World” bằng ngơn ng
C#. Phân tích ng n g n ch ng trình đ gi i thi u các đặc tr ng chính y u trong

ngơn ng C#.
Ví dụ 2-1 Chương trình Hello World
class HelloWorld
{
static void Main( )
{
// sử dụng đối tượng console của hệ thống
System.Console.WriteLine("Hello World");
}
}

Sau khi biên d ch và ch y HelloWorld, k t qu là dịng ch “Hello World” hi n th
trên màn hình.

2.1 Lớp, đối tượng và kiểu
B n ch t c a l p trình h ng đ i t ng là t o ra các ki u m i. M t kiểu bi u di n
m t v t gì đó. Gi ng v i các ngơn ng l p trình h ng đ i t ng khác, m t ki u
trong C# cũng đ nh nghƿa bằng từ khoá class (và đ c g i là l p) còn th hi n c a
l p đ c g i là đối tượng.
Xem Ví d 2-1 ta th y cách khai báo m t l p HelloWorld. Ta th y ngay là cách
khai báo và n i dung c a m t l p hồn tồn gi ng v i ngơn ng Java và C++, chỉ
có khác là cu i khai báo l p không c n d u “;”

2.1.1 Phương th c
Các hành vi c a m t l p đ c g i là các ph ng th c thành viên (g i t t là ph ng
th c) c a l p đó. M t phương thức là m t hàm (ph ng th c thành viên còn g i là
hàm thành viên). Các ph ng th c đ nh nghƿa nh ng gì mà m t l p có th làm.
Cách khai báo, n i dung và cách s d ng các ph ng th c gi ng hồn tồn v i Java
và C++. Trong ví d trên có m t ph ng th c đặc bi t là ph ng th c Main() (nh
hàm main() trong C++) là ph ng th c b t đ u c a m t ng d ng C#, có th tr v

ki u void hay int. M i m t ch ng trình (assembly) có th có nhi u ph ng th c
Main nh ng khi đó ph i chỉ đ nh ph ng th c Main() nào s b t đ u ch ng trình.

6


Kh i đ u

Gvhd: Nguy n T n Tr n Minh Khang

2.1.2 Các ghi chú
C# có ba ki u ghi chú trong đó có hai ki u r t quen thu c c a C++ là dùng: "//" và
"/* … */". Ngồi ra cịn m t ki u ghi chú n a s trình bày các ch ng k .
Ví dụ 2-2 Hai hình th c ghi chú trong C#
class HelloWorld
{
static void Main( ) // Đây là ghi trên một dòng
{
/* Bắt đầu ghi chú nhiều dòng
Vẫn còn trong ghi chú
Kết thúc ghi chú bằng */
System.Console.WriteLine("Hello World");
}
}

2.1.3

ng dụng dạng console

“Hello World” là m t ng d ng console. Các ng d ng d ng này th ng khơng có

giao di n ng i dùng đ h a Các nh p xu t đ u thông qua các console chu n (d ng
dịng l nh nh DOS).
Trong ví d trên, ph ng th c Main() vi t ra màn hình dịng “Hello World”. Do
màn hình qu n lý m t đ i t ng Console, đ i t ng này có ph ng th c
WriteLine() cho phép đặt m t dòng ch lên màn hình. Đ g i ph ng th c này ta
dùng toán t “.”, nh sau: Console.WriteLine(…).

2.1.4 Namespaces - Vùng tên
Console là m t trong r t nhi u (c ngàn) l p trong b th vi n .NET. M i l p đ u
có tên và nh v y có hàng ngàn tên mà l p trình viên ph i nh hoặc ph i tra c u
m i khi s d ng. V n đ là ph i làm sao gi m b t l ng tên ph i nh .
Ngoài v n đ ph i nh quá nhi u tên ra, còn m t nh n xét sau: m t s l p có m i
liên h nào đó v mặt ng nghƿa, ví d nh l p Stack, Queue, Hashtable … là các
l p cài đặt c u trúc d li u túi ch a. Nh v y có th nhóm nh ng l p này thành m t
nhóm và thay vì ph i nh tên các l p thì l p trình viên chỉ c n nh tên nhóm, sau đó
có th th c hi n vi c tra c u tên l p trong nhóm nhanh chóng h n. Nhóm là m t
vùng tên trong C#.
M t vùng tên có th có nhi u l p và vùng tên khác. N u vùng tên A nằm trong vùng
tên B, ta nói vùng tên A là vùng tên con c a vùng tên B. Khi đó các l p trong vùng
tên A đ c ghi nh sau: B.A.Tên_lớp_trong_vùng_tên_A
System là vùng tên ch a nhi u l p h u ích cho vi c giao ti p v i h th ng hoặc các
l p công d ng chung nh l p Console, Math, Exception….Trong ví d HelloWorld
trên, đ i t ng Console đ c dùng nh sau:
System.Console.WriteLine("Hello World");

7


Kh i đ u


Gvhd: Nguy n T n Tr n Minh Khang

2.1.5 Tốn tử chấm “.”
Nh trong Ví d 2-1 toán t ch m đ c dùng đ truy su t d li u và ph ng th c
m t l p (nh Console.WriteLine()), đ ng th i cũng dùng đ chỉ đ nh tên lóp trong
m t vùng tên (nh System.Console).
Toán t d u ch m cũng đ

c dùng đ truy xu t các vùng tên con c a m t vùng tên

Vùng_tên.Vùng_tên_con.Vùng_tên_con_con

2.1.6 Từ khoá using
N u ch ng trình s d ng nhi u l n ph ng th c Console.WriteLine, từ System s
ph i vi t nhi u l n. Đi u này có th khi n l p trình viên nhàm chán. Ta s khai báo
rằng ch ng trình có s d ng vùng tên System, sau đó ta dùng các l p trong vùng
tên System mà khơng c n ph i có từ System đi tr c.
Ví dụ 2-3 Từ khóa using
// Khai báo chương trình có sử dụng vùng tên System
using System;
class HelloWorld
{
static void Main( )
{
// Console thuộc vùng tên System
Console.WriteLine("Hello World");
}
}

2.1.7 Phân biệt hoa thường

Ngôn ng C# cũng phân bi t ch hoa th ng gi ng nh Java hay C++ (không nh
VB). Ví d nh WriteLine khác v i writeLine và c hai cùng khác v i
WRITELINE. Tên bi n, hàm, hằng … đ u phân bi t ch hoa ch th ng.

2.1.8 Từ khố static
Trong Ví d 2-1 ph ng th c Main() đ c khai báo ki u tr v là void và dùng từ
khoá static. Từ khoá static cho bi t là ta có th g i ph ng th c Main() mà không
c n t o m t đ i t ng ki u HelloWorld.

2.2 Phát triển “Hello World”
Có hai cách đ vi t, biên d ch và ch y ch ng trình HelloWorld là dùng mơi tr ng
phát tri n tích h p (IDE) Visual Studio .Net hay vi t bằng trình so n th o vĕn b n
và biên d ch bằng dòng l nh. IDE Vs.Net d dùng h n. Do đó, trong đ tài này chỉ
trình bày theo h ng làm vi c trên IDE Visual Studio .Net.

8


Kh i đ u

Gvhd: Nguy n T n Tr n Minh Khang

2.2.1 Soạn thảo “Hello World”
Đ t o ch ng trình “Hello World” trong IDE, ta ch n Visual Studio .Net từ thanh
th c đ n. Ti p theo trên màn hình c a IDE ch n File > New > Project từ thanh
th c đ n, theo đó xu t hi n m t c a sổ nh sau:

Hình 2-1 Tạo một ng dụng console trong VS.Net

Đ t o ch ng trình “Hello World” ta ch n Visual C# Project > Console

Application, đi n HelloWorld trong ô Name, ch n đ ng d n và nh n OK. M t c a
sổ so n th o xu t hi n.

9


Kh i đ u

Gvhd: Nguy n T n Tr n Minh Khang

Hình 2-2 Cửa sổ soạn thảo nội dung mã nguồn

Vs.Net t t o m t s mã, ta c n chỉnh s a cho phù h p v i ch

ng trình c a mình.

2.2.2 Biên dịch và chạy “Hello World”
Sau khi đã đ y đ mã ngu n ta ti n hành biên d ch ch ng trình: nh n “Ctrl–Shift–
B” hay ch n Build > Build Solution. Ki m tra xem ch ng trình có l i khơng c a
sổ Output cu i màn hình. Khi biên d ch ch ng trình nó s l u l i thành t p tin .cs.
Ch y ch

ng trình bằng “Ctrl–F5” hay ch n Debug > Start Without Debugging.

2.2.3 Trình gở rối c a Visual Studio .Net
Trình gỡ r i c a VS.Net r t m nh h u ích. Ba kỹ nĕng chính y u đ s d ng c a
trình g r i là:
• Cách đặt đi m ng t (breakpoint) và làm sao ch y cho đ n đi m ng t
• Làm th nào ch y từng b c và ch y v t qua m t ph ng th c.
• Làm sao đ quan sát và hi u chỉnh giá tr c a bi n, d li u thành viên, …


Cách đ n gi n nh t đ đặt đi m ng t là b m chu t trái vào phía l trái, t i đó s hi n
lên m t ch m đ .

10


Kh i đ u

Gvhd: Nguy n T n Tr n Minh Khang

Hình 2-3 Minh họa một điểm ngắt

Cách dùng trình g r i hồn tồn gi ng v i trình g r i trong VS 6.0. Nó cho phép
ta dừng l i m t v trí b t kỳ, cho ta ki m tra giá tr t c th i bằng cách di chuy n
chu t đ n v tr bi n. Ngoài ra, khi g r i ta cũng có th xem giá tr các bi n thơng
qua c a sổ Watch và Local.
Đ ch y trong ch đ g r i ta ch n Debug
Start hay nh n F5, mu n ch y từng
b c ta b m F11 và ch y v t qua m t ph ng th c ta b m F10.

11


Nh ng c s c a ngôn ng C#

Gvhd: Nguy n T n Tr n Minh Khang

Chương 3 Những cơ sở c a ngôn ngữ C#
Trong ch ng này s trình bày v h th ng ki u trong C#; phân bi t ki u d ng sẵn

(int, long, bool, …) v i các ki u do ng i dùng đ nh nghƿa. Ngồi ra, ch ng này
cũng s trình bày cách t o và dùng bi n, hằng; gi i thi u ki u li t kê, chu i, ki u
đ nh danh, bi u th c, và câu l nh. Ph n hai c a ch ng trình bày v các c u trúc
đi u ki n và các toán t logic, quan h , toán h c, …

3.1 Các kiểu
C# bu c ph i khai báo ki u c a đ i t ng đ c t o. Khi ki u đ c khai báo rõ ràng,
trình biên d ch s giúp ngĕn ngừa l i bằng cách ki m tra d li u đ c gán cho đ i
t ng có h p l khơng, đ ng th i c p phát đúng kích th c b nh cho đ i t ng.
C# phân thành hai lo i: loai d li u d ng sẵn và lo i do ng

i dùng đ nh nghƿa.

C# cũng chia t p d li u thành hai ki u: giá trị và tham chiếu. Bi n ki u giá tr đ c
l u trong vùng nh stack, còn bi n ki u tham chi u đ c l u trong vùng nh heap.
C# cũng h tr ki u con tr c a C++, nh ng ít khi đ c s d ng. Thông th ng con
tr chỉ đ c s d ng khi làm vi c tr c ti p v i Win API hay các đ i t ng COM.

3.1.1 Loại dữ liệu định sẳn
C# có nhi u ki u d li u đ nh sẳn, m i ki u ánh x đ n m t ki u đ c hổ tr b i
CLS (Commom Language Specification), ánh x đ đ m b o rằng đ i t ng đ c
t o trong C# khơng khác gì đ i t ng đ c t o trong các ngôn ng .NET khác M i
ki u có m t kích th c c đ nh đ c li t kê trong b ng sau
Bảng 3-1 Các kiểu dựng sẵn
Ki u

Kích th c
(byte)

Mô t - giá tr


Ki u .Net

byte

1

Byte

Không d u (0..255)

char

1

Char

Mã ký th Unicode

bool

1

Boolean

true hay false

sbyte

1


Sbyte

Có d u (-128 .. 127)

short

2

Int16

Có d u (-32768 .. 32767)

ushort

2

Uint16

Khơng d u (0 .. 65535)

int

4

Int32

Có d u (-2147483647 .. 2147483647)

12




×