(NB) Giáo trình Lập trình C#1 với mục tiêu giúp các bạn có thể trình bày được các kiến thức về nền tảng Microsoft .NET; Trình bày được các kiến thức và kỹ năng về lập trình hướng đối tượng trên C#; Trình bày được cú pháp các lệnh cơ bản trong C#; Trình bày được các bước xây dựng lớp đối tượng; Mô tả được các bước nạp chồng hàm, chồng toán tử; Trình bày các kiến thức cơ bản về mảng, chuỗi.
Trang 1B NÔNG NGHI P VÀ PHÁT TRI N NÔNG THÔN Ộ Ệ Ể
TRƯỜNG CAO Đ NG C GI I NINH BÌNHẲ Ơ Ớ
GIÁO TRÌNH
NGH : Ề L P TRÌNH MÁY TÍNHẬTRÌNH Đ : CAO Đ NG Ộ Ẳ
Ban hành kèm theo Quy t đ nh s : /QĐTCĐCGNB ế ị ố
ngày….tháng….năm 2017 c a Tr ủ ườ ng Cao đ ng C gi i Ninh ẳ ơ ớ
Bình
Trang 2
Tam Đi pệ , năm 2017
Trang 3TUYÊN B B N QUY NỐ Ả Ề
Tài li u này thu c lo i sách giáo trình nên các ngu n thông tin có thệ ộ ạ ồ ể
được phép dùng nguyên b n ho c trích dùng cho các m c đích v đào t o vàả ặ ụ ề ạ tham kh o.ả
M i m c đích khác mang tính l ch l c ho c s d ng v i m c đích kinhọ ụ ệ ạ ặ ử ụ ớ ụ doanh thi u lành m nh s b nghiêm c m.ế ạ ẽ ị ấ
Trang 6GIÁO TRÌNH MÔ ĐUNTên mô đun: L p trình C# 1ậ
Mã s mô đun: MĐ20ố
V trí, tính ch t, ý nghĩa và vai trò c a mô đun:ị ấ ủ
V trí: Đây là mô đun ch a đ ng ki n th c n n t ng v ngôn ng l pị ứ ự ế ứ ề ả ề ữ ậ trình C#, là mô đun h tr cho hai mô đun l p trình Windows 2 và l p trìnhỗ ợ ậ ậ Windows 3.
Tính ch t.ấ Mô đun này yêu c u đã h c qua các ki n th c v l p trìnhầ ọ ế ứ ề ậ
hướng đ i tố ượng, c u trúc d li u.ấ ữ ệ
Ý nghĩa và vai trò c a đun: ủ
M c tiêu c a mô đun:ụ ủ
Ki n th c:ế ứ
+ Trình bày được các ki n th c v n n t ng Microsoft .NET;ế ứ ề ề ả
+ Trình bày được các ki n th c và k năng v l p trình hế ứ ỹ ề ậ ướng đ i tố ượng trên C#;
+ Trình bày được cú pháp các l nh c b n trong C#;ệ ơ ả
+ Trình bày được các bước xây d ng l p đ i tự ớ ố ượng;
+ Mô t đả ược các bước n p ch ng hàm, ch ng toán t ;ạ ồ ồ ử
+ Trình bày các ki n th c c b n v m ng, chu i.ế ứ ơ ả ề ả ỗ
K năng:ỹ
+ S d ng thành th o các toán t ;ử ụ ạ ử
+ S d ng đử ụ ược các ch d n biên d ch;ỉ ẫ ị
+ S d ng thành th o các c u trúc đi u khi n;ử ụ ạ ấ ề ể
+ Xây d ng đự ượ ớc l p, xây d ng l p có ch ng toán t ;ự ớ ồ ử
+ S d ng đử ụ ược các l p c s c a NET.ớ ơ ở ủ
+ Khai báo và thao tác được v i m ng và chu i;ớ ả ỗ
Năng l c t ch và trách nhi m: Rèn luy n tính c n th n, chính xác, đ mự ự ủ ệ ệ ẩ ậ ả
b o an toàn cho ngả ười và trang thi t b ế ị
Trang 7Gi i thi uớ ệ : Trong bài này chúng ta s nghiên c u khái quát v ẽ ứ ề
Microsoft.NET, biên d ch và ngôn ng C#.ị ữ
M c tiêu :ụ
- Trình bày được n n t ng Microsoft .NET, trình biên d ch và MSIL, lýề ả ị
do và l ch s v s ra đ i c a ngôn ng C#;ị ử ề ự ờ ủ ữ
- Mô t đả ược khái quát v ngôn ng C#;ề ữ
Đ m b o an toàn cho ngả ả ười và thi t b ế ị
m tộ qui ướ nh tc ấ đ nhị để công vi cệ đượ trôi ch y.c ả
IDE thì cung c pấ m tộ môi trườ giúp chúng ta tri nng ể khai dễ dàng,
và nhanh chóng các ng d ng d a trên n n t ng .NET. N u không có IDEứ ụ ự ề ả ế chúng ta cũng có th dùngể m tộ trình so nạ th oả ví như Notepad hay b tấ cứ trình so nạ th oả văn b nả nào và sử d ng commandụ line để biên d chị và th cự thi, tuy nhiên vi cệ này m tấ nhi uề th iờ gian. T tố nh tấ là chúng ta dùng IDE phát tri n các ng d ng, và cũng là cách d s d ngể ứ ụ ễ ử ụ nh t.ấ
Tính năng c a Micosoft.NETủ
M t mô hình l p trình cho phép nhà phát tri n xây d ng các ngộ ậ ể ự ứ
d ng d ch v webụ ị ụ và ng d ng client v i Extensible Markup Languageứ ụ ớ (XML)
T pậ h pợ d chị vụ XML Web, như Microsoft NET My Services cho phép nhà phát tri n đ n gi n và tích h p ngể ơ ả ợ ười dùng kinh nghi m.ệ
Cung c p các server ph c v bao g m: Windows 2000, SQL Server,ấ ụ ụ ồ
và BizTalk Server, t t c đi u tích h p, ho t đ ng, và qu n lý các d ch vấ ả ề ợ ạ ộ ả ị ụ XML Web và các ng d ng.ứ ụ
Các ph nầ m mề client như Windows XP và Windows CE giúp ngườ iphát tri nể phân ph i sâu và thuy t ph c ngố ế ụ ười dùng kinh nghi m thông quaệ các dòng thi tế b ị
Trang 8Nhi u công c h tr nh Visual Studio .NET, đ phát tri n các d chề ụ ỗ ợ ư ể ể ị
v Webụ XML, ng d ng trên n n Windows hay n n web m t cách d dàngứ ụ ề ề ộ ể
và hi uệ qu ả
Ki n trúc .NET ế Framework
.NET Framework là m tộ platform m iớ làm đ nơ gi nả vi cệ phát tri nể ng
ứ d ngụ trong môi trườ phân tán c ang ủ Internet. NET Framework đượ cthi tế kế đ yầ đủ để đáp ngứ theo quan đi mể sau:
Để cung c pấ m tộ môi trườ l png ậ trình hướ đ ing ố tượ v ngng ữ
ch c,ắ trong đó mã ngu nồ đ iố tượ đng ượ l uc ư trữ và th cự thi m tộ cách c cụ
b ộ Th cự thi c cụ bộ nh ng đư ược phân tán trên Internet, ho c th c thi tặ ự ừ xa
Đ cung c p m t môi trể ấ ộ ường th c thi mã ngu n mà t i thi u đự ồ ố ể ượ c
vi c đóng góiệ ph nầ m m và s tranh ch p v phiênề ự ấ ề b n.ả
Đ cung c p m t môi trể ấ ộ ường th c thi mã ngu n mà đ m b o vi cự ồ ả ả ệ
th c thi an toànự mã ngu n, bao g m c vi c mã ngu n đồ ồ ả ệ ồ ượ ạc t o b i hãngở
th ba hay b t c hãng nàoứ ấ ứ mà tuân th theo ki n trúcủ ế .NET
Đ cung c p m t môi trể ấ ộ ường th c thi mã ngu n mà lo i b đự ồ ạ ỏ ượ c
nh ng l i th cữ ỗ ự hi nệ các script hay môi trường thông d ch.ị
Đ làm cho nh ng ngể ữ ười phát tri n có kinh nghi m v ng ch c cóể ệ ữ ắ
th n m v ngể ắ ữ nhi uề ki uể ngứ d ngụ khác nhau. Như là từ nh ngữ ngứ d ngụ trên n nề Windows đ nế nh ng ng d ng d a trênữ ứ ụ ự web
Để xây d ngự t tấ cả các thông tin d aự triên tiêu chu nẩ công nghi pệ
để đ mả b oả r ng mã ngu n trên .NET có th tích h p v i b t c mã ngu nằ ồ ể ợ ớ ấ ứ ồ khác
.NET Framework có hai thành ph nầ chính: Common Language Runtime (CLR) và thư vi n l pệ ớ
Common Language Runtime (CLR): th cự hi nệ qu nả lý bộ nh ,ớ qu nả
lý th cự thi ti uể trình, th cự thi mã ngu n,ồ xác nh nậ mã ngu nồ an toàn, biên
b chị và các d chị vụ hệ th ngố khác. Nh ngữ đ cặ tính trên là n n t ng c b nề ả ơ ả cho nh ng mã ngu n đữ ồ ược qu n lý ch y trênả ạ CLR
Trang 9Th vi n l p là hư ệ ớ ướng đ i tố ượng cung c p nh ng ki u d li u mà mãấ ữ ể ữ ệ ngu n đồ ược qu n lý c a chúng ta có th d n xu tả ủ ể ẫ ấ
2. Biên d ch và MSILị
Trong NET Framework, chươ trình không đng ượ biên d chc ị vào các
t pậ tin th cự thi mà thay vào đó chúng được biên d ch vào nh ng t p tin trungị ữ ậ gian g i là Microsoftọ Intermediate Language (MSIL). Nh ngữ t pậ tin MSIL
đượ t oc ạ ra từ C# cũng tươ tự như các t png ậ tin MSIL đượ ạc t o ra t nh ngừ ữ ngôn ng khác c a .NET, platform đây không c n bi t ngôn ngữ ủ ở ầ ế ữ c a mãủ ngu n. Đi u quan tr ng chính y u c a CLR là chung (common), cùng m tồ ề ọ ế ủ ộ runtime hỗ tr phát tri n trong C# cũng nh trongợ ể ư VB.NET
Mã ngu nồ C# đượ biên d chc ị vào MSIL khi chúng ta build project.
Mã MSIL này đượ ưc l u vào trong m t t p tin trên đĩa. Khi chúng ta ch yộ ậ ạ
chương trình, thì MSIL được biên d ch m t l n n a, s d ng trình biên d chị ộ ầ ữ ử ụ ị JustInTime (JIT). K t qu là mã máy đế ả ược th c thiự b i b x lý c aở ộ ử ủ máy
Trình biên d ch JIT tiêu chu n thì th c hi n theo yêu c u. Khi m tị ẩ ự ệ ầ ộ
phương th c đứ ượ g i,c ọ trình biên d chị JIT phân tích MSIL và t oạ ra s nả
ph mẩ mã máy có hi uệ quả cao, mã này có thể ch y r t nhanh. Trình biênạ ấ
d ch JIT đ thông minh đ nh n ra khi m t mã đã đị ủ ể ậ ộ ược biên d ch, do v y khiị ậ
ng d ng ch y thì vi c biên d ch ch x y ra khi c n thi t, t c là ch biên d ch
mã MSIL ch a biên d ch ra mã máy. Khi đó m t ng d ng .NET th c hi n,ư ị ộ ứ ụ ự ệ chúng có xu hướ là ch y nhanh và nhanh h n n a, cũng nh là nh ng mãng ạ ơ ữ ư ữ ngu n đồ ược biên d ch r i thì đị ồ ượ dùng l i.c ạ
Do t t c các ngôn ng .NET Framework cùng t o ra s n ph m MSILấ ả ữ ạ ả ẩ
gi ng nhau, nênố k t qu là m t đ i tế ả ộ ố ượng đượ ạc t o ra t ngôn ng này có thừ ữ ể
được truy c p hay đậ ược d n xu t ẫ ấ từ m tộ đ iố tượ c ang ủ ngôn ngữ khác trong .NET
3. Ngôn ng C#ữ
Ngôn ngữ C# khá đ nơ gi n,ả chỉ kho ngả 80 từ khóa và h nơ mườ m yi ấ
ki uể dữ li uệ được xây d ngự s n.ẵ Tuy nhiên, ngôn ngữ C# có ý nghĩa cao khi
nó th cự thi nh ngữ khái ni mệ l p trình hi n đ i. C# bao g m t t c nh ng hậ ệ ạ ồ ấ ả ữ ỗ
tr cho c u trúc, thành ph n component, l pợ ấ ầ ậ trình hướ đ ing ố tượng
C# đượ xây d ngc ự trên n nề t ngả c a hai ngôn ng m nh nh t là C++ủ ữ ạ ấ
Trang 10Ngôn ng C# đữ ược phát tri n b i đ i ngũ k s c a Microsoft, trong đóể ở ộ ỹ ư ủ
ngườ ẫi d n đ uầ là Anders Hejlsberg và Scott Wiltamuth
Ngôn ng C# ch a nh ng t khóa cho vi c khai báo nh ng ki u l p đ iữ ứ ữ ừ ệ ữ ể ớ ố
tượng m i và nh ng phớ ữ ương th c hay thu c tính c a l p, và cho vi c th c thiứ ộ ủ ớ ệ ự đóng gói, k th a,ế ừ và đa hình, ba thu c tính c b n c a b t c ngôn ng l pộ ơ ả ủ ấ ứ ữ ậ trình hướng đ iố tượng
Trong ngôn ngữ C# m iọ thứ liên quan đ nế khai báo l pớ đi uề đượ ctìm th yấ trong ph nầ khai báo c aủ nó. Đ nhị nghĩa m tộ l pớ trong ngôn ngữ C# không đòi h iỏ ph iả chia ra t pậ tin header và t pậ tin ngu nồ gi ngố như trong ngôn ngữ C++. H nơ thế n a,ữ ngôn ngữ C# hỗ tr ki uợ ể XML, cho phép chèn các tag XML để phát sinh tự đ ngộ các document cho l p.ớ
C# cũng h tr giao di n ỗ ợ ệ interface, nó được xem nh m t cam k t v iư ộ ế ớ
m t l p choộ ớ nh ng d chữ ị vụ mà giao di nệ quy đ nh.ị Trong ngôn ngữ C#, m tộ
l pớ chỉ có thể kế th aừ từ duy nh tấ m tộ l pớ cha, t cứ là không cho đa kế
th aừ như trong ngôn ngữ C++, tuy nhiên m tộ l pớ có th th cể ự thi nhi uề giao
di n.ệ Khi m tộ l pớ th cự thi m tộ giao di nệ thì nó sẽ h aứ là nó sẽ cung c pấ
ch c năng th c thi giaoứ ự di n.ệ
Trong ngôn ng C#, nh ng c u trúc cũng đữ ữ ấ ược h tr , nh ng kháiỗ ợ ư
ni m v ng nghĩaệ ề ữ c a nó thay đ i khác v i C++. Trong C#, m t c u trúcủ ổ ớ ộ ấ
được gi i h n, là ki u d li u nh g n,ớ ạ ể ữ ệ ỏ ọ và khi t o th hi n thì nó yêu c u ítạ ể ệ ầ
h n v h đi u hành và b nh so v i m t l p. M t c uơ ề ệ ề ộ ớ ớ ộ ớ ộ ấ trúc thì không thể
kế th aừ từ m tộ l pớ hay đượ kế th ac ừ nh ngư m tộ c uấ trúc có thể th cự thi
Trang 12BÀI 2. NGÔN NG C# Ữ
Mã bài: MĐ20_B02
Gi i thi u: ớ ệ Trong bài này chúng ta s nghiên c u khái quát v ngôn ng C#:ẽ ứ ề ữ
t i sao ph i dùng C#, các bạ ả ước đ chu n b cho chể ẩ ị ương trình và gi i thi uớ ệ cho các b n bi t s qua 1 chạ ế ơ ương trinh C# đ n gi n.ơ ả
M c tiêu:ụ
Mô t đả ược các đ c đi m n i b t c a ngôn ng C#;ặ ể ổ ậ ủ ữ
Trình bày được các bước đ vi t m t chể ế ộ ương trình trong C#;
Vi t đế ược chương trình C# đ n gi n;ơ ả
Đ m b o an toàn cho ngả ả ười và thi t b ế ị
1. T i sao ph i s d ng ngôn ng C#ạ ả ử ụ ữ
Trang 13đượ ấc l y tr c ti p t ngôn ng C và C++, nh ng nóự ế ừ ữ ư đã đượ c ic ả ti nế để làm cho ngôn ngữ đ nơ gi nả h nơ
b. C# là ngôn ng hi n ữ ệ đ i ạ
Nh ngữ đ cặ tính c a C#:ủ xử lý ngo iạ l ,ệ thu gom bộ nhớ tự đ ng,ộ
nh ngữ ki uể dữ li uệ mở r ng,ộ và b oả m tậ mã ngu n. Đâyồ nh ngữ đ cặ tính
được mong đ i trong m t ngôn ng hi n đ i.ợ ộ ữ ệ ạ
c. C# là ngôn ng h ữ ướ ng đ i ố t ượ ng
Nh ngữ đ cặ đi mể chính c aủ ngôn ngữ hướ đ ing ố tượ (Objectngoriented language) là s đóng gói (encapsulation), s k th a (inheritance),ự ự ế ừ
e. C# là ngôn ng ít t ữ ừ khóa
C# là ngôn ngữ sử d ngụ gi iớ h nạ nh ngữ từ khóa
B ng sau li t kêả ệ các t khóa c a ngôn ngừ ủ ữ C#
abstr
act
default
foreach
Object
ushort
e
implicit
Override
alBrea
Catc
h
explicit
internal
nly
truechec
ked
Trang 14cked
f. C# là ngôn ng h ữ ướ ng module
Mã ngu nồ C# có thể đượ vi tc ế trong nh ngữ ph nầ đượ g ic ọ là nh ngữ
l p, nh ngớ ữ l pớ này ch aứ các phươ th cng ứ thành viên c aủ nó. Nh ngữ l pớ và
nh ngữ phươ th cng ứ có thể đượ sử d ng l i trong ng d ng hay các chc ụ ạ ứ ụ ươ ngtrình khác
g. C# là m t ngôn ng ph ộ ữ ổ bi n ế
C# là ngôn ng đ ng th 5 trong bi u đ kh o sát 15 ngôn ng s d ngữ ứ ứ ể ồ ả ữ ử ụ
ph bi n nh t năm 2014.ổ ế ấ
2. Ngôn ng C# v i ngôn ng khácữ ớ ữ
Microsoft nói r ngằ C# mang đ nế s cứ m nhạ c aủ ngôn ngữ C++ v iớ sự
dễ dàng c aủ ngôn ng Visual Basic. Có th nó không d nh Visual Basic,ữ ể ễ ư
nh ng v i phiên b nư ớ ả Visual Basic.NET (Version 7) thì ngang nhau. B i vìở chúng được vi t l i t m t n n t ng. Chúngế ạ ừ ộ ề ả ta có th vi t nhi u chể ế ề ươ ngtrình v i ít mã ngu n h n n u dùngớ ồ ơ ế C#
M t đi u quan tr ng khác v i C++ là mã ngu n C# không đòi h i ph iộ ề ọ ớ ồ ỏ ả
có t p tin ậ header
T t c mã ngu n đấ ả ồ ược vi t trong khai báo m tế ộ l p.ớ
Nh đã nói bên trên. .ư ở NET runtime trong C# th c hi n vi c thu gomự ệ ệ
b nh t đ ng.ộ ớ ự ộ Do đi u này nên vi c s d ng con tr trong C# ít quan tr ngề ệ ử ụ ỏ ọ
h n trong C++. Nh ng con trơ ữ ỏ cũng có thể đượ sử d ngc ụ trong C#, khi đó
nh ngữ đo nạ mã ngu nồ này sẽ đượ đánh d uc ấ là không an toàn (unsafe code)
C# cũng từ bỏ ý t ngưở đa kế th aừ như trong C++. Và sự khác nhau khác là C# đ aư thêm thu cộ tính vào trong m tộ l pớ gi ngố như trong Visual Basic. Và nh ngữ thành viên c aủ l p đớ ược g i duy nh t b ng toán t “.” khácọ ấ ằ ử
v i C++ có nhi u cách g i trong các tình hu ngớ ề ọ ố khác nhau
Trang 15th cự hi nệ b ngằ cách thông d ch ho cị ặ biên d chị justintime trong t ngừ máy o
ả tươ ng.ng ứ
S khác nhau gi Java và C#: trongự ữ ngôn ngữ C# nhi uề hỗ trợ đượ c
đ aư ra để biên d chị mã ngôn ngữ trung gian sang mã máy. C# ch aứ nhi uề
ki uể dữ li uệ cơ b nả h nơ Java và cũng cho phép nhi uề sự mở r ngộ v iớ ki uể
dữ li uệ giá tr ị
3. Các bước chu n b cho chẩ ị ương trình
Xác đ nh m c tiêu c a chị ụ ủ ươ trình.ng
Xác đ nh nh ng phị ữ ương pháp gi i quy t v nả ế ấ đ ề
T o m t chạ ộ ương trình đ gi i quy t v nể ả ế ấ đ ề
Th c thi chự ương trình đ xem k tể ế qu ả
4. Chương trình C# đ n gi nơ ả
* L p, đ i tớ ố ượng và ki u d li uể ữ ệ
Đi u c t lõi c a l p trình hề ố ủ ậ ướng đ i tố ượng là t o ra các ki u m i.ạ ể ớ
Ki u là m t thể ộ ứ được xem như tr uừ tượng
Ki u để ược đ nh nghĩa nh m t d ng v a có thu c tính chungị ư ộ ạ ừ ộ (properties) và các hành vi ng x (behavior) c aứ ử ủ nó
Ki u trong ki u trong C# để ể ược đ nhị nghĩa là m tộ l pớ (class), và các thể hi nệ riêng c aủ t ngừ l pớ đượ g ic ọ là đ iố tượ (object).ng
Khai báo l pớ trong C# không có d uấ ; sau ngo cặ } cu iố cùng c aủ
l p.ớ Và khácv i l p trong C/C++ là chia thành 2 ph n header và ph n đ nhớ ớ ầ ầ ị nghĩa. Trong C# , đ nhị nghĩa m tộ l pớ đượ gói g nc ọ trong d uấ { } sau tên l pớ
và trong cùng m tộ t pậ tin.
* Phương th cứ
Phươ th cng ứ chính là các hàm đượ đ nhc ị nghĩa trong l p.ớ
Các phươ th cng ứ này chỉ ra r ngằ các hành đ ngộ mà l pớ có thể làm
đượ cùng v ic ớ cách th cứ làm hành đ ngộ đó
Khi chươ trình th cng ự thi, CLR g iọ hàm Main() đ uầ tiên, hàm Main() là đ uầ vào c a chủ ươ trình, và m ing ỗ chươ trình ph ing ả có m tộ hàm Main()
C u trúc hàm main: ấ
static void Main( )
Trang 16* Chú thích
M t chộ ương trình được vi t t t thì c n ph i có chú thích các đo n mãế ố ầ ả ạ
được vi t. Cácế đo nạ chú thích này sẽ không đượ biên d chc ị và cũng không tham gia vào chươ trình. M cng ụ đích chính là làm cho đo n mã ngu n rõạ ồ ràng và dễ hi u.ể
M t chu i chú thích trên m t dòng thì b t đ u b ng ký t “//”ộ ỗ ộ ắ ầ ằ ự
Trong đó:
dòng di u khi n:ề ể là m t h ng xâu ký t đ t trong hai d u “ ”, nó baoộ ằ ự ặ ấ
g m các lo i đ i tồ ạ ố ượng sau: Các ký t thông thự ường, các ký t đ c bi t vàự ặ ệ các đ c t có d ng: {i,j:dt } có th đ t b t k v trí nào trong xâu v i: i làặ ả ạ ể ặ ấ ỳ ở ị ớ
th t c a m t đ i mà ta c n đ a giá tr c a chúng ra t i v trí đ t đ c t (cácứ ự ủ ộ ố ầ ư ị ủ ạ ị ặ ặ ả
đ i có th t b t đ u t không), j là đ r ng dành cho đ i c n đ a ra(n u jố ứ ự ắ ầ ừ ộ ộ ố ầ ư ế
mà l n h n đ dài c a d li u c n đ a ra thì giá tr đóớ ơ ộ ủ ữ ệ ầ ư ị đ ượ c căn ph i, n u ả ế
mu n căn trái thì ta thêm d u tr phía tr ố ấ ừ ướ c, còn n u j mà nh h n đ dài ế ỏ ơ ộ
Trang 17danh sách các đ i:ố các đ i có th là h ng, bi n, bi u th c và đ tố ể ằ ế ể ứ ặ cách nhau m t d u ph yộ ấ ẩ
Đ nh p d li u vào t bàn phím chúng ta dùng phể ậ ữ ệ ừ ương th c ReadLineứ
có trong l p Console nh sau:ớ ư
Kiểudữliệu Tênbiến;
Tênbiến=Kiểudữliệu.Parse(Console.ReadLine());
Thông thường trong qua trình nh p d li u chúng ta thậ ữ ệ ương k t h pế ợ
phương th c Write v i ReadLine trong l p Console. Phứ ớ ớ ương th c này tr vứ ả ề
d li u ki u string.ữ ệ ể
Namespace cung c p cho ta cách t ch c quan h gi a các l p và cácấ ổ ứ ệ ữ ớ
ki u khác nhau. Đây là kĩ thu t cho phép .NET tránh vi c các tên l p, tên bi n,ể ậ ệ ớ ế tên hàm đ ng đ vì trùng tên v i nhau gi a các l p. Đ khai báo không gianụ ộ ớ ữ ớ ể tên chúng ta s d ng t khóa namespace.ử ụ ừ
Đ i tố ượng Console b h n ch b i namespace b ng vi c s d ngị ạ ế ở ằ ệ ử ụ mã
Trang 18này là m tộ namespace hay subnamespace v i mô t đ y đ trong c u trúcớ ả ầ ủ ấ phân c p c aấ ủ nó.
Trang 19Ch n Console Application\ Gõ tên project vào m c Name\OKọ ụ
Gõ l nh vào hàm Mainệ
Trang 20Biên d ch: Nh n F6ị ấ
Ch y chạ ương trình: Nh n F5ấ
Trang 21- Trình bày được các ki u d li u c b n trong C#; ể ữ ệ ơ ả
- Trình bày được các cú pháp: khai báo bi n, khai báo h ng, các câuế ằ
l nh c b n trong C#;ệ ơ ả
- S d ng thành th o các ki u d li u d ng s n c a C#;ử ụ ạ ể ữ ệ ự ẵ ủ
- Có k năng t t v vi c s d ng bi n, h ng và các bi u th c;ỹ ố ề ệ ử ụ ế ằ ể ứ
Ngôn ngữ C# đ aư ra các ki uể dữ li uệ xây d ngự s nẵ r tấ h uữ d ng,ụ phù
h pợ v iớ m tộ ngôn ng l p trình hi n đ i, m i ki u d li u đữ ậ ệ ạ ỗ ể ữ ệ ược ánh x đ nạ ế
m t ki u d li u độ ể ữ ệ ược h tr b iỗ ợ ở h th ngệ ố xác nh nậ ngôn ngữ chung (Common Language Specification: CLS) trong MS.NET
B ng các ki u d li u xây d ng s nả ể ữ ệ ự ẵ
Byte
ar
Ký tự UnicodeB
short
6
S nguyên có d u giá tr t ố ấ ị ừ
32768 đ n 32767.ếus
hort
t16
S nguyên không d u 0 –ố ấ 65.535
Trang 22ó ấu
–2.147.483.647 àUi
nt
32
S nguyên không d u 0 –ố ấ 4.294.967.295
flo
at
gle
Ki u d u ch m đ ng, giá tr ể ấ ấ ộ ị
x p x tấ ỉ ừ 3,4E 38 đ n 3,4E+38, v i ế ớ
St
ring
Ki u chu iể ỗ(được nói k ỹ ở
Trang 23Chuy n đ i các ki u d ể ổ ể ữ li u ệ
Nh ng đ i tữ ố ượng c a m t ki u d li u này có th đủ ộ ể ữ ệ ể ược chuy n sang ể
nh ng đ i tữ ố ượ c a m tng ủ ộ ki uể dữ li uệ khác thông qua cơ chế chuy nể đ iổ
Cú pháp chuy n đ i d li u:ể ổ ữ ệ
Bi n=(ki u) giá tr [bi n];ế ể ị ế
Trang 24Ta cũng có th gán giá tr cho bi n khi khai báoể ị ế
Ví d : ụ
int a=9;
Đ nhị danh
Đ nh danh là tên mà ngị ườ ậi l p trình ch đ nh cho các ki u d li u, cácỉ ị ể ữ ệ
phương th c,ứ bi n,ế h ng, hay đ i tằ ố ượng M t đ nh danh ph i b t đ u v iộ ị ả ắ ầ ớ
m t ký t ch cái hay d u g chộ ự ữ ấ ạ dưới, các ký t còn l i ph i là ký t ch cái,ự ạ ả ự ữ
Trang 25H ngằ cũng là m tộ bi nế nh ngư giá trị c aủ h ngằ không thay đ i.ổ
2.3. Ki u li t kêể ệ
Ki u li t kê đ n gi n là t p h p các tên h ng có giá tr không thay ể ệ ơ ả ậ ợ ằ ị
Trang 26đ i (thổ ường được g iọ là danh sách li tệ kê).
Cú pháp khai báo ki u li t kêể ệ
enum <tên li t kê> [:ki u c s ]ệ ể ơ ở
{danh sách các thành ph n li t kê};ầ ệ
Trang 27Biên d ch: Nh n F6ị ấ
Ch y chạ ương trình: Nh n F5ấ
3. Bi u th cể ứ
Nh ng câu l nh mà th c hi n vi c đánh giá m t giá tr g i là bi u th c.ữ ệ ự ệ ệ ộ ị ọ ể ứ
M t phép gánộ m tộ giá tr cho m t bi n cũng là m t bi uị ộ ế ộ ể th c:ứ
var1 = 24;
Trong câu l nh trên phép đánh giá hay đ nh lệ ị ượng chính là phép gán có giá tr là 24 choị bi n ế var1. L u ý là toán t gán (‘=’) không ph i là toán t soư ử ả ử sánh
Do var1 = 24 là m t bi uộ ể th cứ đượ đ nhc ị giá trị là 24 nên bi uể th cứ này
có thể đượ xem nh ph n bên ph i c a m t bi u th c gánc ư ầ ả ủ ộ ể ứ khác:
var2 = var1 = 24;
L nhệ này sẽ đượ th cc ự hi nệ từ bên ph iả sang khi đó bi n ế var1 sẽ
nh nậ đượ giá trị là 24 và ti pc ế sau đó thì var2 cũng đượ nh nc ậ giá trị là 24
Trang 284. Kho ng tr ngả ắ
Trong ngôn ngữ C#, nh ngữ kho ngả tr ng,ắ kho ngả tab và các dòng
đượ xem như là kho ng tr ng (whitespace).c ả ắ
C# sẽ bỏ qua t tấ cả các kho ngả tr ngắ đó, do v yậ chúng ta có thể vi tế
Trình bày được cú pháp các l nh phân nhánh, các l nh l p trong C#ệ ệ ặ
S d ng đử ụ ược các câu l nh đ gi i quy t các bài t p theo yêu c u.ệ ể ả ế ậ ầTrong C# m t ch d n l p trình đ y đ độ ỉ ẫ ậ ầ ủ ược g i là câu l nh.ọ ệ
M i câu l nh ph i k t thúc v i m t d u ch m ph y, ví dỗ ệ ả ế ớ ộ ấ ấ ẩ ụ nh :ư
int x; // m t câuộ l nhệ
x = 32; // câu l nhệ khácint y =x; // đây cũng là m t câuộ l nhệPhân lo i câu l nhạ ệ
+ L nh đ n ệ ơ
Trang 29v aừ t oạ th cự hi nệ xong và trả về m tộ giá trị thì trình biên d chị sẽ ti pế t cụ
th cự hi nệ dòng l nhệ ti pế sau c aủ hàm ban đ u.ầ
Ho t đ ng: trình biên d ch ki m tra bi u th c đi u ki n, câu l nh chạ ộ ị ể ể ứ ề ệ ệ ỉ
được th c hi n khi bi u th c đi u ki n đúngự ệ ể ứ ề ệ
Trang 30<Câu l nh 2 >]ệ
Trang 32Các l nhệ đi uề ki nệ if có thể l ngồ nhau để ph cụ vụ cho vi cệ xử lý các câu đi uề ki nệ ph c t p.ứ ạ
Ví d :ụ
Căn c vào đi m trung bình đ x p lo i h c l c:ứ ể ể ế ạ ọ ự
N u dtb<5 thì x p lo i Y uế ế ạ ế
N u 5 =<dtb <7 thì x p lo i Trung bìnhế ế ạ
N u 7=<dtb<8 thì x p lo i Kháế ế ạ
N u 8=< dtb<9 thì x p lo i Gi iế ế ạ ỏ
N u dtb>=9 thì x p lo i Xu t s cế ế ạ ấ ắ
Trang 33Biên d ch: Nh n F6ị ấ
Ch y chạ ương trình: Nh n F5ấ
5.2.4.Câu l nh ệ switch
Khi có quá nhi u đi u ki n đ ch n th c hi n thì dùng câu l nh ề ề ệ ể ọ ự ệ ệ if sẽ
r t r i r m vàấ ố ắ dài dòng, C# cung c p câu l nh nh y switchấ ệ ả
Cú pháp:
switch (bi u th c)ể ứ{
case <giá tr 1>:<Câu l nh 1>[<break;>]ị ệcase <giá tr 2>:<Câu l nh 2>[<break;>]ị ệ
…case <giá tr n>:<Câu l nh n>[<break;>]ị ệ [default:<câu l nh n+1>]ệ
Trang 34Ho t đ ng: trình biên d ch s tính giá tr c a bi n th c, N u giá tr c aạ ộ ị ẽ ị ủ ể ứ ế ị ủ
bi u th c b ng giá tr tể ứ ằ ị ương ng c a case nào thì câu l nh thu c case đó sứ ủ ệ ộ ẽ
được th c thi. Sau khi th c thi xong l nh n u g p l nh break thì s thoát kh iự ự ệ ế ặ ệ ẽ ỏ
l nh switch ngệ ượ ạc l i thì các l nh còn l i s đệ ạ ẽ ược th c thi. N u giá tr bi uự ế ị ể
th c không b ng giá tr c a case nào thì khi đó câu l nh n+1 s đứ ằ ị ủ ệ ẽ ược th c thi.ự
Ví d : X p th trong 1 tu nụ ế ứ ầ
Thu=2 thì k t qu là “Thu hai”ế ả
Thu =3 k t qu là “Thu ba” …ế ả
N u thu là m t giá tr khác th trong tu n thì k t qu là “thu khong tonế ộ ị ứ ầ ế ả tai”
Trang 35Biên d ch: Nh n F6ị ấ
Ch y chạ ương trình: Nh n F5ấ
5.3. Vòng l p ặ while
Ý nghĩa c a vòng l p ủ ặ while là: “Trong khi đi u ki n đúng thì th c ề ệ ự
hi n các công vi c ệ ệ này”. Cú pháp s d ng vòng l p ử ụ ặ while như sau:
while (Bi uể
th c)ứ
<Câu l nh th cệ ự hi n>ệ
Bi u th c c a vòng l p ể ứ ủ ặ while là đi u ki n đ các l nh đ c th cề ệ ể ệ ượ ự
hi n, bi u th c này b tệ ể ứ ắ bu c ph i tr v m t giá tr ki u ộ ả ả ề ộ ị ể bool là true/false.
Trang 36N u có nhi u câu l nh c n đế ề ệ ầ ược th c hi nự ệ trong vòng l pặ while thì ph iả đ tặ các l nhệ này trong kh iố l nh.ệ
Trang 37 Cú pháp
do
<Câu l nh>ệwhile (đi u kiên)ề
Ho t đ ng: máy s th c hi n câu l nh sau đó ki m tra đi u ki n. N uạ ộ ẽ ự ệ ệ ể ề ệ ế
đi u ki n đúng thì ti p t c th c hi n câu l nh, l p đ n khi đi u ki n sai.ề ệ ế ụ ự ệ ệ ặ ế ề ệ
Ví d : hi n th 10 s t nhiên đ u tiênụ ể ị ố ự ầ
Trang 39for ([ ph n kh i t o] ; [bi u th c đi u ki n]; [b cầ ở ạ ể ứ ề ệ ướ l p])ặ
Trang 40foreach (<ki u t p h p> <tên truy c p thành ph n > in < ể ậ ợ ậ ầtên t pậ h p>)ợ