Download as pdf or txt
Download as pdf or txt
You are on page 1of 20

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 C# VÀ
VI T M T 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 NG L P Vƾ

TÌM HI U NGÔN NG C# VÀ VI T M T NG D NG MINH H A

GIÁO VIÊN H NG D N
NGUY N T N TR N MINH KHANG

TP. HCM 2002


Lời cám ơn

Đ có th hoà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 hoá 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 toán t ...............................................................................44
6.4 Các toán t logic hai ngôi ................................................................................45
6.5 Toá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 toà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 toà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.
Ngoà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. Ngoà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ừ khoá 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 toà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 hoàn toà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 hoàn toà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à
"/* … */". Ngoà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 Toá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ừ khoá 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 hoàn toà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. Ngoà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
Kích th c
Ki u Ki u .Net Mô t - giá tr
(byte)
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

You might also like