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

c sharp ebook

338 364 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề C# School
Tác giả Faraz Raseeed
Người hướng dẫn Tore Nestenius
Trường học Wellington College
Chuyên ngành Programming Heaven: C# School
Thể loại Giáo trình
Năm xuất bản 2006
Thành phố Fuenjrola, Spain
Định dạng
Số trang 338
Dung lượng 3,52 MB

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

Nội dung

Ιµπλεµεντινγ ινηεριτανχε ιν Χ# ...80Χονστρυχτορ χαλλσ ιν Ινηεριτανχε...83 Τηε βασε κεψωορδ − Χαλλινγ Χονστρυχτορσ οφ τηε βασε−χλασσ εξπλιχιτλψ...85 Προτεχτεδ Αχχεσσ Μοδιφιερ ...87 Τηε Πρ

Trang 1

1

14 λεσσονσ το γετ ψου σταρτεδ ωιτη Χ# ανδ ΝΕΤ

Αυτηορ: Φαραζ Ρασηεεδ

Εδιτορσ: Τορε Νεστενιυσ ϑονατηαν Ωορτηινγτον

Λεε Αδδψ

ωωω.προγραµµερσηεαϖεν.χοµ

Trang 3

∆ατα Σ.Λ

Τηε ινφορµατιον ιν τηισ βοοκ ισ διστριβυτεδ ον αν ∀ασ ισ∀ βασισ, ωιτηουτ ωαρραντψ Αλτηουγη εϖερψ πρεχαυτιον ηασ βεεν τακεν ιν τηε πρεπαρατιον οφ τηισ ωορκ, νειτηερ τηε αυτηορσ νορ Σψνχηρον ∆ατα σηαλλ ηαϖε ανψ λιαβιλιτψ το ανψ περσον ορ εντιτψ ωιτη ρεσπεχτ

το ανψ λοσσ ορ δαµαγε χαυσεδ ορ αλλεγεδ το βε χαυσεδ διρεχτλψ ορ ινδιρεχτλψ βψ τηε ινφορµατιον χονταινεδ ιν τηισ ωορκ

Τραδεµαρκεδ ναµεσ µαψ αππεαρ ιν τηε τεξτ οφ τηισ βοοκ Τραδεµαρκεδ ναµεσ αρε νοτ εξπλιχιτλψ µαρκεδ ωιτη τηε τραδεµαρκ σψµβολ ωιτηιν τηισ βοοκ, ηοωεϖερ τηεψ αρε ονλψ υσεδ ιν αν εδιτοριαλ φασηιον ανδ το τηε βενεφιτ οφ τηε τραδεµαρκ οωνερ ωιτη νο ιντεντιον οφ ινφρινγεµεντ οφ τηε τραδεµαρκ

Το οβταιν τηε λατεστ υπδατεσ το τηισ βοοκ, το συγγεστ χορρεχτιονσ ορ το µακε οτηερ χοµµεντσ, ϖισιτ:

ηττπ://ωωω.προγραµµερσηεαϖεν.χοµ/2/ΧΣηαρπΒοοκ

Trang 4

Ι ηοπε τηατ τηισ ε−βοοκ ηελπσ ψου γετ το γριπσ ωιτη τηε Χ# προγραµµινγ λανγυαγε ανδ τηε Νετ πλατφορµ ανδ προϖεσ

α υσεφυλ ρεφερενχε φορ τηε φυτυρε Ιτ ισ τηε φιρστ εδιτιον, βυτ ηοπεφυλλψ νοτ τηε λαστ – ψουρ φεεδβαχκ ωιλλ ηελπ υσ ιν τηατ σενσε, σο πλεασε δο νοτ ηεσιτατε το σενδ ψουρ χοµµεντσ ανδ εσπεχιαλλψ ινφορµατιον αβουτ ανψ µιστακεσ το

ινφο≅προγραµµερσηεαϖεν.χοµ

Ηαϖε φυν,

ϑονατηαν Ωορτηινγτον

Προγραµµερ’σ Ηεαϖεν Χ# Σχηοολ Εδιτορ

Trang 5

Σινχε 2000, Τορε ηασ ωορκεδ φυλλ τιµε ον Προγραµµερ’σ Ηεαϖεν Α ρανγε οφ φρεελανχε εξπερτσ φροµ αρουνδ τηε ωορλδ, ινχλυδινγ Ενγλανδ, τηε ΥΣΑ, Χηινα, Κορεα ανδ Ινδια, ηαϖε αλσο χοντριβυτεδ το τηε σιτε

Σο, ωηψ νοτ σεε ηοω Προγραµµερ’σ Ηεαϖεν χαν ηελπ ψου ωιτη ψουρ δεϖελοπµεντ ωορκ τοδαψ? 650.000 υνιθυε ϖισιτορσ α µοντη χαν∋τ βε ωρονγ!

ηττπ://ωωω.προγραµµερσηεαϖεν.χοµ/

.ΝΕΤ νεωσλεττερ

Τηε Προγραµµερ∋σ Ηεαϖεν Νετ νεωσλεττερ, σεντ ουτ υπ το φουρ τιµεσ α µοντη, χονταινσ τηε λατεστ Νετ νεωσ αλονγ ωιτη ινφορµατιον ον νεω Νετ αρτιχλεσ ανδ ρεσουρχεσ ον Προγραµµερ∋σ Ηεαϖεν Τηε Νετ πλατφορµ ισ εϖολϖινγ φαστ, ανδ σιγνινγ υπ φορ ουρ νεωσλεττερ ισ α γρεατ ωαψ το βε κεπτ ιν τηε πιχτυρε Ιν τηε ιµµεδιατε φυτυρε, εξπεχτ χοϖεραγε

οφ Χ# 3.0 ανδ ΩΧΦ

Σιγν υπ τοδαψ φορ φρεε ατ ηττπ://ωωω.προγραµµερσηεαϖεν.χοµ/2/∆οτΝετ−Νεωσλεττερ

Trang 6

α σεριεσ οφ αρτιχλεσ εξπλαινινγ τηε νεω φεατυρεσ ανδ τηε χονχεπτσ βεηινδ τηεµ ιν τηε σαµε πλαιν Ενγλιση τηατ ψου ηαϖε φουνδ ιν τηισ βοοκ

Trang 7

7

Χοντεντσ Ιν Συµµαρψ

1 Ιντροδυχτιον 17

2 Χ# Λανγυαγε Φυνδαµενταλσ 31

3 Χλασσεσ ανδ Οβϕεχτσ 53

4 Ινηεριτανχε & Πολψµορπηισµ 78

5 Στρυχτυρεσ, Ενυµερατιον, Γαρβαγε Χολλεχτιον & Νεστεδ Χλασσεσ 99

6 Αβστραχτ Χλασσεσ & Ιντερφαχεσ 115

7 Αρραψσ, Χολλεχτιονσ & Στρινγ Μανιπυλατιον 129

8 Εξχεπτιον Ηανδλινγ 155

9 ∆ελεγατεσ & Εϖεντσ 171

10 ΩινΦορµσ & Ωινδοωσ Αππλιχατιονσ 190

11 Μορε Ωινδοωσ Χοντρολσ & Στανδαρδ ∆ιαλογ Βοξεσ 211

12 ∆ατα Αχχεσσ υσινγ Α∆Ο.Νετ 230

13 Μυλτιτηρεαδινγ 265

14 Τηε Φιλε Σψστεµ & Στρεαµσ 288

15 Νεω Φεατυρεσ Ιν Χ# 2.0 322

16 Τηε Ροαδ Αηεαδ 338

Trang 8

Χοντεντσ Ιν ∆εταιλ

1 Ιντροδυχτιον 17

Τηε Ωαψ 17

Τοολσ οφ τηε τραδε 17

Τηε Χ# Λανγυαγε 17

Τηε Νετ Αρχηιτεχτυρε ανδ Νετ Φραµεωορκ 18

Τηε Χοµµον Λανγυαγε Ρυντιµε (ΧΛΡ) 18

ΜΣΙΛ (Μιχροσοφτ Ιντερµεδιατε Λανγυαγε) Χοδε 18

ϑυστ Ιν Τιµε Χοµπιλερσ (ϑΙΤερσ) 19

Τηε Φραµεωορκ Χλασσ Λιβραρψ (ΦΧΛ) 19

Τηε Χοµµον Λανγυαγε Σπεχιφιχατιον (ΧΛΣ) 19

Τηε Χοµµον Τψπε Σψστεµ (ΧΤΣ) 20

Γαρβαγε Χολλεχτιον (ΓΧ) 20

Τηε Νετ Φραµεωορκ 20

Χ# χοµπαρεδ το Χ++ 20

Τηε ςισυαλ Στυδιο.Νετ Ι∆Ε 21

Προϕεχτσ ανδ Σολυτιονσ 21

Τοολβοξ, Προπερτιεσ ανδ Χλασσ ςιεω Ταβσ 22

Ωριτινγ Ψουρ Φιρστ Ηελλο Ωορλδ Χονσολε Αππλιχατιον ιν Χ# 22

Ωορκινγ Ωιτηουτ ςισυαλ Στυδιο.Νετ 22

Ωιτη ςισυαλ Στυδιο.Νετ 23

Υνδερστανδινγ τηε Ηελλο Ωορλδ Αππλιχατιον Χοδε: 25

Ναµεσπαχεσ ιν Χ# 25

Τηε υσινγ Κεψωορδ 26

Τηε χλασσ Κεψωορδ 26

Τηε Μαιν() Μετηοδ 26

Πριντινγ ον τηε Χονσολε 27

Χοµµεντσ 27

Ιµπορταντ ποιντσ το ρεµεµβερ 28

Α µορε ιντεραχτιϖε Ηελλο Ωορλδ Αππλιχατιον 29

∆ισχυσσινγ α µορε ιντεραχτιϖε Ηελλο Ωορλδ Αππλιχατιον 29

2 Χ# Λανγυαγε Φυνδαµενταλσ 31

Λεσσον Πλαν 31

Βασιχ ∆ατα Τψπεσ ανδ τηειρ µαππινγ το ΧΤΣ (Χοµµον Τψπε Σψστεµ) 31

ςαριαβλεσ 32

Χονσταντ ςαριαβλεσ ορ Σψµβολσ 33

Ναµινγ Χονϖεντιονσ φορ ϖαριαβλεσ ανδ µετηοδσ 33

Οπερατορσ ιν Χ# 34

Αριτηµετιχ Οπερατορσ 34

Πρεφιξ ανδ Ποστφιξ νοτατιον 36

Trang 9

9

Ασσιγνµεντ Οπερατορσ 36

Ρελατιοναλ Οπερατορσ 37

Οτηερ Οπερατορσ 39

Οπερατορ Πρεχεδενχε 39

Φλοω Χοντρολ Ανδ Χονδιτιοναλ Στατεµεντσ 39

Τηε ιφ ελσε στατεµεντ 39

Τηε σωιτχη χασε στατεµεντ 42

Λοοπσ Ιν Χ# 45

Τηε φορ Λοοπ 45

Σοµε ιµπορταντ ποιντσ αβουτ τηε φορ λοοπ 46

Τηε δο ωηιλε Λοοπ 48

ωηιλε Λοοπ 48

Αρραψσ ιν Χ# 49

Αρραψ ∆εχλαρατιον 49

Αχχεσσινγ τηε ϖαλυεσ στορεδ ιν αν αρραψ 49

φορεαχη Λοοπ 50

3 Χλασσεσ ανδ Οβϕεχτσ 53

Λεσσον Πλαν 53

Χονχεπτ οφ α Χλασσ 53

Οβϕεχτσ 53

Φιελδσ 54

Μετηοδσ 55

Ινσταντιατινγ τηε χλασσ 56

Αχχεσσινγ τηε µεµβερσ οφ α χλασσ 56

Αχχεσσ Μοδιφιερσ ορ Αχχεσσιβιλιτψ Λεϖελσ 58

Προπερτιεσ 60

Υσινγ Προπερτιεσ 61

Πρεχαυτιονσ ωηεν υσινγ προπερτιεσ 63

Στατιχ Μεµβερσ οφ τηε χλασσ 65

Σοµε Μορε αβουτ Μετηοδσ 67

Χονστρυχτορσ 67

Φιναλιζε() Μετηοδ οφ Οβϕεχτ χλασσ 70

∆εστρυχτορσ 70

Μετηοδ ανδ Χονστρυχτορ Οϖερλοαδινγ 71

Οϖερλοαδινγ Χονστρυχτορσ 72

ςαλυε τψπεσ (ουτ & ρεφ Κεψωορδσ) 73

Ρεφερενχε τψπεσ 75

Σοµε µορε αβουτ ρεφερενχεσ ανδ οβϕεχτσ 75

4 Ινηεριτανχε & Πολψµορπηισµ 78

Λεσσον Πλαν 78

Ινηεριτανχε 78

Ινηεριτανχε ιν Χ# 79

Trang 10

Ιµπλεµεντινγ ινηεριτανχε ιν Χ# 80

Χονστρυχτορ χαλλσ ιν Ινηεριτανχε 83

Τηε βασε κεψωορδ − Χαλλινγ Χονστρυχτορσ οφ τηε βασε−χλασσ εξπλιχιτλψ 85

Προτεχτεδ Αχχεσσ Μοδιφιερ 87

Τηε Προτεχτεδ ιντερναλ Αχχεσσ Μοδιφιερ 88

Τηε σεαλεδ κεψωορδ 88

Οβϕεχτ χλασσ − τηε βασε οφ αλλ χλασσεσ 89

Πολψµορπηισµ 90

Υσινγ τηε ρεφερενχε οφ τηε βασε τψπε φορ ρεφερενχινγ τηε οβϕεχτσ οφ χηιλδ τψπεσ 90

Υσινγ µετηοδσ ωιτη τηε σαµε ναµε ιν τηε Βασε ανδ τηε Συβ−χλασσ 91

Οϖερριδινγ τηε µετηοδσ − ϖιρτυαλ ανδ οϖερριδε κεψωορδσ 92

Τηε νεω κεψωορδ 95

Τψπε χαστινγ τηε οβϕεχτσ − Υπ−χαστινγ ανδ ∆οων−χαστινγ 96

Τηε ισ ανδ ασ κεψωορδσ 96

Βοξινγ ανδ Υν−βοξινγ 97

5 Στρυχτυρεσ, Ενυµερατιον, Γαρβαγε Χολλεχτιον & Νεστεδ Χλασσεσ 99

Λεσσον Πλαν 99

Στρυχτυρεσ (στρυχτ) 99

∆εφινινγ α στρυχτ 99

Ινσταντιατινγ τηε στρυχτ 100

στρυχτσ ασ ςαλυε Τψπεσ 104

Ενυµερατιον 105

Τηε Νεεδ φορ Ενυµερατιον 105

Υσινγ Ενυµερατιον (ενυµ) 106

Μορε αβουτ Ενυµερατιονσ 108

Γαρβαγε Χολλεχτιον ιν Νετ 110

∆εστρυχτορσ ανδ Περφορµανχε Οϖερηεαδ 112

Σψστεµ.ΓΧ.Χολλεχτ() µετηοδ 112

Νεστεδ Χλασσεσ ιν Χ# 112

6 Αβστραχτ Χλασσεσ & Ιντερφαχεσ 115

Λεσσον Πλαν 115

Αβστραχτ Χλασσεσ 115

Ιντερφαχεσ 118

Ιµπλεµεντινγ Μορε Τηαν Ονε Ιντερφαχε 121

Εξπλιχιτ ιµπλεµεντατιον οφ µετηοδσ 124

Χαστινγ το αν ιντερφαχε υσινγ ισ ανδ ασ οπερατορσ 125

Αν ιντερφαχε ινηεριτινγ ονε ορ µορε ιντερφαχεσ 127

7 Αρραψσ, Χολλεχτιονσ & Στρινγ Μανιπυλατιον 129

Λεσσον Πλαν 129

Αρραψσ Ρεϖισιτεδ 129

Μυλτιδιµενσιοναλ Αρραψσ 129

Ινσταντιατινγ ανδ αχχεσσινγ τηε ελεµεντσ οφ µυλτιδιµενσιοναλ αρραψσ 131

Trang 11

11

Ινσταντιατινγ ανδ αχχεσσινγ ϑαγγεδ Αρραψσ 132

Σοµε οτηερ ιµπορταντ ποιντσ αβουτ µυλτιδιµενσιοναλ αρραψσ 134

Τηε φορεαχη Λοοπ 135

Χολλεχτιονσ 138

Τηε ΑρραψΛιστ χλασσ 138

Τηε Σταχκ χλασσ 141

Τηε Θυευε χλασσ 143

∆ιχτιοναριεσ 144

Τηε Ηασηταβλε χλασσ 144

Χονστρυχτινγ α Ηασηταβλε 144

Αδδινγ ιτεµσ το α Ηασηταβλε 145

Ρετριεϖινγ ιτεµσ φροµ τηε Ηασηταβλε 145

Ρεµοϖινγ α παρτιχυλαρ ιτεµ 145

Γεττινγ τηε χολλεχτιον οφ κεψσ ανδ ϖαλυεσ 146

Χηεχκινγ φορ τηε εξιστενχε οφ α παρτιχυλαρ ιτεµ ιν α ηασηταβλε 147

Τηε ΣορτεδΛιστ χλασσ 147

Στρινγ Ηανδλινγ ιν Χ# 149

Τηε στρινγ χλασσ ανδ ιτσ µεµβερσ 150

Τηε ΣτρινγΒυιλδερ χλασσ 152

8 Εξχεπτιον Ηανδλινγ 155

Λεσσον Πλαν 155

Εξχεπτιονσ Βασιχσ 155

Τηε νεεδ φορ Εξχεπτιονσ 155

Εξχεπτιονσ ιν Χ# ανδ Νετ 157

Ηανδλινγ Εξχεπτιονσ υσινγ τηε τρψ χατχη φιναλλψ βλοχκσ 158

Υσε οφ τηε τρψ χατχη βλοχκ 158

Εξχεπτιον χλασσ∋ Μεσσαγε ανδ ΣταχκΤραχε Προπερτιεσ 159

Τηε φιναλλψ βλοχκ 161

Χατχηινγ Μυλτιπλε Εξχεπτιονσ υσινγ µυλτιπλε χατχη βλοχκσ 163

Αν ιµπορταντ ποιντ το ρεµεµβερ ιν µυλτιπλε χατχη βλοχκσ 166

Οτηερ ιµπορταντ ποιντσ αβουτ Εξχεπτιον Ηανδλινγ ιν Χ# 167

∆εφινινγ ψουρ οων χυστοµ εξχεπτιονσ 168

Εξχεπτιον Ηιεραρχηψ ιν τηε Νετ Φραµεωορκ 168

Τηροωινγ αν εξχεπτιον: τηε τηροω κεψωορδ 169

9 ∆ελεγατεσ & Εϖεντσ 171

Λεσσον Πλαν 171

∆ελεγατεσ Βασιχσ 171

Τηε τψπε ορ σιγνατυρε οφ τηε µετηοδ τηε δελεγατε χαν ποιντ το 171

Τηε δελεγατε ρεφερενχε, τηατ χαν βε υσεδ το ρεφερενχε α µετηοδ 173

3.Τηε αχτυαλ µετηοδ ρεφερενχεδ βψ τηε δελεγατε 173

Χαλλινγ τηε αχτυαλ µετηοδ τηρουγη ιτσ δελεγατε 173

Χονφυσιον ιν τερµινολογψ 176

Trang 12

∆ελεγατεσ ιν τηε Νετ Φραµεωορκ 176

Πασσινγ δελεγατεσ το µετηοδσ 176

Μυλτιχαστ ∆ελεγατεσ 178

Ιµπλεµεντινγ α Μυλτιχαστ ∆ελεγατε 178

Ρεµοϖινγ α µετηοδ φροµ τηε µυλτιχαστ δελεγατε∋σ ινϖοχατιον λιστ 180

Εϖεντσ ανδ Εϖεντ Ηανδλινγ 181

Εϖεντ Ηανδλινγ ιν Χ# 181

Α Χλοχκ Τιµερ Εξαµπλε 183

Μυλτιχαστ εϖεντσ 185

Πασσινγ σοµε δατα ωιτη τηε Εϖεντ: Συβ−χλασσινγ Σψστεµ.ΕϖεντΑργσ 186

10 ΩινΦορµσ & Ωινδοωσ Αππλιχατιονσ 190

Λεσσον Πλαν 190

Ωινδοωσ Αππλιχατιονσ ανδ Νετ 190

ΩινΦορµ Βασιχσ 190

Βυιλδινγ τηε ∀Ηελλο ΩινΦορµ∀ Αππλιχατιον 191

Υνδερστανδινγ τηε Χοδε 192

Αδδινγ Εϖεντ Ηανδλινγ 193

ςισυαλ Στυδιο.Νετ & ιτσ Ι∆Ε (Ιντεγρατεδ ∆εϖελοπµεντ Ενϖιρονµεντ) 196

ΙντελλιΣενσε ανδ Ηοτ Χοµπιλερ 196

Χοδε Φολδινγ 197

Ιντεγρατεδ Χοµπιλερ, Σολυτιον βυιλδερ ανδ ∆εβυγγερ 197

Φορµ ∆εσιγνερ 197

Σολυτιον Εξπλορερ 198

Μενυσ ιν τηε ςισυαλ Στυδιο Νετ Ι∆Ε 199

Υσινγ ςισυαλ Στυδιο.Νετ το βυιλδ τηε ∀Ηελλο ΩινΦορµ∀ Αππλιχατιον 200

Χρεατινγ α νεω Προϕεχτ 200

Σεττινγ ϖαριουσ προπερτιεσ οφ τηε φορµ 201

Αδδινγ Χοντρολσ το τηε Φορµ 202

Αδδινγ Εϖεντ Ηανδλινγ 203

Εξεχυτινγ τηε αππλιχατιον 203

Τηε χοδε γενερατεδ βψ τηε Φορµ ∆εσιγνερ 204

Υσινγ Μορε Χοντρολσ 204

Υσινγ ϖαριουσ χοντρολσ ιν αν αππλιχατιον: Προγραµµερ∋σ Σηοππινγ Χαρτ 205

∆εσιγνινγ τηε φορµ ανδ πλαχινγ τηε χοντρολσ 206

Ωριτινγ Χοδε φορ Εϖεντ Ηανδλινγ 207

Σοµε Ιµπορταντ Ποιντσ φορ δεσιγνινγ Ωινδοωσ Αππλιχατιονσ 210

11 Μορε Ωινδοωσ Χοντρολσ & Στανδαρδ ∆ιαλογ Βοξεσ 211

Λεσσον Πλαν 211

Χολλεχτιον Χοντρολσ 211

Λιστ Βοξ Χοντρολ 211

Αδδινγ ιτεµσ το τηε λιστ βοξ 212

Αχχεσσινγ ιτεµσ ιν τηε λιστ βοξ 212

Trang 13

13

Ρεµοϖινγ ιτεµσ φροµ τηε λιστ βοξ 213

Λιστ Βοξ Εϖεντσ 213

Χοµβο Βοξ Χοντρολ 214

Τρεε ςιεω 214

Τηε ΤρεεΝοδε Εδιτορ 215

Αδδινγ/Ρεµοϖινγ ιτεµσ ατ ρυντιµε 216

Τρεε ςιεω Εϖεντσ 218

Ιµαγε Λιστ Χοντρολ 219

Ατταχηινγ Αν Ιµαγε Λιστ το διφφερεντ χοντρολσ 219

Λιστ ςιεω Χοντρολ 220

Τωο Ιµαγε Λιστσ ιν τηε Λιστ ςιεω Χοντρολ 220

Αδδινγ ιτεµσ το τηε λιστ ϖιεω χοντρολ υσινγ δεσιγνερ 220

Αδδινγ Ιτεµσ ατ ρυντιµε υσινγ χοδε 221

Εϖεντσ φορ Λιστ ςιεω Χοντρολ 222

Μαιν Μενυ 222

Τοολ Βαρ 223

∆ατε Τιµε Πιχκερ 223

Ωινδοωσ Στανδαρδ ∆ιαλογ Βοξεσ 224

Οπεν Φιλε ∆ιαλογ Βοξ 224

Υσινγ τηε Οπεν Φιλε ∆ιαλογ Βοξ 225

Σαϖε Φιλε ∆ιαλογ Βοξ 226

Φοντ ανδ Χολορ ∆ιαλογ Βοξεσ 227

12 ∆ατα Αχχεσσ υσινγ Α∆Ο.Νετ 230

Λεσσον Πλαν 230

Ιντροδυχινγ Α∆Ο.Νετ 230

∆ιφφερεντ χοµπονεντσ οφ Α∆Ο.Νετ 231

Α ρεϖιεω οφ βασιχ ΣΘΛ θυεριεσ 232

ΣΘΛ ΣΕΛΕΧΤ Στατεµεντ 232

ΣΘΛ ΙΝΣΕΡΤ Στατεµεντ 232

ΣΘΛ ΥΠ∆ΑΤΕ Στατεµεντ 232

ΣΘΛ ∆ΕΛΕΤΕ Στατεµεντ 233

Περφορµινγ χοµµον δατα αχχεσσ τασκσ ωιτη Α∆Ο.Νετ 233

Αχχεσσινγ ∆ατα υσινγ Α∆Ο.Νετ 234

∆εφινινγ τηε χοννεχτιον στρινγ 234

∆εφινινγ α Χοννεχτιον 235

∆εφινινγ τηε χοµµανδ ορ χοµµανδ στρινγ 235

∆εφινινγ τηε ∆ατα Αδαπτερ 236

Χρεατινγ ανδ φιλλινγ τηε ∆αταΣετ 236

Α ∆εµονστρατιον Αππλιχατιον 237

Λοαδινγ ταβλεσ 238

Φιλλινγ τηε χοντρολσ ον τηε Φορµ 239

Ναϖιγατινγ τηρουγη τηε ρεχορδσ 241

Trang 14

Υπδατινγ τηε ταβλε 242

Βυιλδινγ τηε Αππλιχατιον 243

Λοαδινγ τηε ταβλε ανδ δισπλαψινγ δατα ιν τηε φορµ∋σ χοντρολσ 244

Ινιτιαλινγ Χοµµανδσ 244

Αδδινγ Παραµετερσ το τηε χοµµανδσ 246

Τηε ΤογγλεΧοντρολσ() µετηοδ οφ ουρ αππλιχατιον 246

Εδιτινγ (ορ Υπδατινγ) Ρεχορδσ 247

Εϖεντ Ηανδλερ φορ τηε Σαϖε Βυττον 248

Εϖεντ Ηανδλερ φορ τηε Χανχελ Βυττον 250

Ινσερτινγ Ρεχορδσ 251

∆ελετινγ α Ρεχορδ 252

Υσινγ Στορεδ Προχεδυρεσ 254

Σαµπλε Στορεδ Προχεδυρεσ 254

ΥΠ∆ΑΤΕ Στορεδ Προχεδυρε 254

ΙΝΣΕΡΤ Στορεδ Προχεδυρε 255

∆ΕΛΕΤΕ Στορεδ Προχεδυρε 255

ΣΕΛΕΧΤ Στορεδ Προχεδυρε 255

Υσινγ Στορεδ Προχεδυρεσ ωιτη Α∆Ο.Νετ ιν Χ# 256

Τηε µοδιφιεδ ΙνιτιαλιζεΧοµµανδσ() µετηοδ 257

Υσινγ ∆ατα Γριδ Χοντρολ το ςιεω Νετ δατα 259

Α ∆εµονστρατιον Αππλιχατιον φορ ∆ατα Γριδ Χοντρολ 259

Σεχονδ ∆εµονστρατιον − Υσινγ µυλτιπλε ρελατεδ ταβλεσ 260

Ρετριεϖινγ δατα υσινγ τηε ΣΕΛΕΧΤ χοµµανδ 262

Υπδατινγ Ρεχορδσ υσινγ ΙΝΣΕΡΤ, ΥΠ∆ΑΤΕ ανδ ∆ΕΛΕΤΕ χοµµανδσ 264

13 Μυλτιτηρεαδινγ 265

Λεσσον Πλαν 265

Ωηατ ισ Μυλτιτηρεαδινγ 265

Μυλτιτηρεαδινγ ιν Χ# 267

Τηρεαδ Φυνχτιοναλιτψ 269

Στατιχ µεµβερσ οφ τηε Σψστεµ.Τηρεαδινγ.Τηρεαδ χλασσ 269

Ινστανχε µεµβερσ οφ τηε Σψστεµ.Τηρεαινγ.Τηρεαδ χλασσ 270

Τηρεαδ ∆εµονστρατιον Εξαµπλε − Βασιχ Οπερατιονσ 270

Τηρεαδ ∆εµονστρατιον Εξαµπλε − Τηρεαδ Πριοριτψ 274

Τηρεαδ ∆εµονστρατιον Εξαµπλε − Τηρεαδ Εξεχυτιον Χοντρολ 278

Υσινγ ϑοιν() το ωαιτ φορ ρυννινγ τηρεαδσ 279

Τηρεαδ Σψνχηρονιζατιον 282

Τηε Χ# Λοχκινγ Μεχηανισµ 282

Τηρεαδσ µαψ χαυσε ∆εαδλοχκ 285

14 Τηε Φιλε Σψστεµ & Στρεαµσ 288

Λεσσον Πλαν 288

Ωορκινγ ωιτη τηε Φιλε Σψστεµ 288

Οβταινινγ τηε Αππλιχατιον’σ Ενϖιρονµεντ Ινφορµατιον – Τηε Σψστεµ.Ενϖιρονµεντ χλασσ 288

Trang 15

15

∆εµονστρατιον Αππλιχατιον – Ενϖιρονµεντ Ινφορµατιον 288

Οβταινινγ τηε πατησ οφ ϖαριουσ Ωινδοωσ Στανδαρδ φολδερσ – Ενϖιρονµεντ.ΓετΦολδερΠατη() 290

Μανιπυλατινγ Φιλεσ υσινγ Σψστεµ.ΙΟ.Φιλε ανδ Σψστεµ.ΙΟ.ΦιλεΙνφο χλασσεσ 292

Σψστεµ.ΙΟ.Φιλε χλασσ 292

Χρεατινγ α φιλε υσινγ Χρεατε() µετηοδ 293

Χοπψινγ ανδ Μοϖινγ α φιλε υσινγ Χοπψ() ανδ Μοϖε() µετηοδσ 294

Χηεχκινγ τηε εξιστενχε οφ τηε φιλε υσινγ Εξιστσ() µετηοδ 294

Γεττινγ Αττριβυτεσ οφ α φιλε υσινγ ΓετΑττριβυτεσ() µετηοδ 294

Σψστεµ.ΙΟ.ΦιλεΙνφο χλασσ 295

Α θυιχκ ανδ σιµπλε εξαµπλε 295

Μανιπυλατινγ ∆ιρεχτοριεσ (φολδερσ) υσινγ Σψστεµ.ΙΟ.∆ιρεχτορψ ανδ Σψστεµ.ΙΟ.∆ιρεχτορψΙνφο χλασσεσ 296

Σψστεµ.ΙΟ.∆ιρεχτορψ χλασσ 297

Χρεατινγ, δελετινγ ανδ χηεχκινγ φορ τηε εξιστενχε οφ διρεχτοριεσ 297

Γεττινγ τηε χοντεντσ (φιλεσ ανδ συβ−διρεχτοριεσ) οφ α διρεχτορψ 298

Σψστεµ.ΙΟ.∆ιρεχτορψΙνφο χλασσ 299

∆εµονστρατιον αππλιχατιον φορ τηε ∆ιρεχτορψΙνφο χλασσ 300

Στρεαµσ 301

Αν οϖερϖιεω οφ τηε διφφερεντ τψπεσ οφ στρεαµσ 302

Τηε Σψστεµ.Στρεαµ χλασσ – τηε βασε οφ αλλ στρεαµσ ιν τηε Νετ φραµεωορκ 302

∆ιφφερεντ τψπεσ οφ φιλε στρεαµσ – Ρεαδινγ ανδ Ωριτινγ το φιλεσ 303

Υσινγ Σψστεµ.ΙΟ.ΦιλεΣτρεαµ το ρεαδ ανδ ωριτε δατα το φιλεσ 303

Α στρινγ ρεπρεσεντινγ τηε πατη ανδ ναµε οφ τηε φιλε 303

Οπενινγ ανδ ρεαδινγ φροµ α φιλε 304

Υσινγ ΒιναρψΡεαδερ ανδ ΒιναρψΩριτερ το ρεαδ ανδ ωριτε πριµιτιϖεσ το φιλεσ 306

Υσινγ ΣτρεαµΡεαδερ ανδ ΣτρεαµΩριτερ το ρεαδ ανδ ωριτε τεξτ φιλεσ 308

Σεριαλιζατιον ανδ ∆ε−σεριαλιζατιον 309

Ιµπλεµεντινγ Σεριαλιζατιον ανδ ∆εσεριαλιζατιον – Α σιµπλε εξαµπλε 309

Φορµαττερσ ιν Σεριαλιζατιον 312

Πρεϖεντινγ χερταιν ελεµεντσ φροµ Σεριαλιζινγ – Τηε [ΝονΣεριαλιζεδ] αττριβυτε 312

Γεττινγ νοτιφιεδ ωηεν ∆εσεριαλιζινγ − τηε Ι∆εσεριαλιζατιονΧαλλΒαχκ ιντερφαχε 315

Ασψνχηρονουσ Ρεαδινγ ανδ Ωριτινγ ωιτη Στρεαµσ 318

Α δεµονστρατιον αππλιχατιον 319

Ισσυεσ Ρεγαρδινγ Ασψνχηρονουσ Ρεαδ/Ωριτε 320

Ιµπορταντ ποιντσ ρεγαρδινγ τηε υσε οφ Στρεαµσ 321

15 Νεω Φεατυρεσ Ιν Χ# 2.0 322

Χ# εϖολϖεσ 322

Τηε νεεδ φορ γενεριχσ 322

Γενεριχ χολλεχτιονσ 323

Χρεατινγ γενεριχ τψπεσ 325

Χονστραινινγ τψπε παραµετερσ 327

Φιναλ τηουγητσ ον γενεριχσ 329

Παρτιαλ τψπεσ 329

Trang 16

Νυλλαβλε τψπεσ 332

Ανονψµουσ µετηοδσ ιν εϖεντ ηανδλινγ 334

Αδϖεντυρεσ ωιτη ανονψµουσ µετηοδσ 335

Φιναλ τηουγητσ ον Χ# 2.0 337

16 Τηε Ροαδ Αηεαδ 338

Λεαρνινγ Μορε 338

Γεττινγ Ηελπ 338

Βοοκ.ρεϖισιον++ 338

Γοοδ Λυχκ! 338

Trang 17

17

1 Ιντροδυχτιον

Τηε Ωαψ

Τηε βοοκ ισ διϖιδεδ ιν το τηρεε προγρεσσιϖε λεϖελσ Ιν τηε φιρστ βεγιννερ σταγε ωε ωιλλ βε δισχυσσινγ τηε Νετ Φραµεωορκ, Χ# Λανγυαγε Φυνδαµενταλσ ανδ Οβϕεχτ Οριεντεδ Προγραµµινγ

Ιν τηε σεχονδ ιντερµεδιατε σεχτιον ωε ωιλλ γο ιντο δεπτη ωιτη Οβϕεχτ Οριεντεδ χονστρυχτσ συχη ασ ινηεριτανχε, πολψµορπηισµ, αβστραχτ χλασσεσ, ιντερφαχεσ, στρυχτυρεσ, ενυµερατιονσ ανδ εξχεπτιονσ

Ιν τηε τηιρδ ανδ φιναλ αδϖανχεδ σεχτιον ωε ωιλλ δελϖε ιντο ωηατ ισ ρεθυιρεδ το ιµπλεµεντ ρεαλ ωορλδ αππλιχατιονσ υσινγ Χ# ωιτη Βασε Λιβραριεσ, φοχυσινγ ον τοπιχσ συχη ασ Χολλεχτιονσ, ∆ελεγατεσ, Εϖεντσ ανδ Ωινδοωσ

Προγραµµινγ ωιτη α νυµβερ οφ χοντρολσ, ασ ωελλ ασ ∆ατα Αχχεσσ ωιτη Α∆Ο.Νετ, Τηρεαδσ ανδ Στρεαµσ

Τοολσ οφ τηε τραδε

Ουρ εξαµπλεσ ηαϖε βεεν ωριττεν ωιτηιν τηε στανδαρδ Ι∆Ε (ςισυαλ Στυδιο.Νετ) Ωε ρεχοµµενδ τηατ ψου οβταιν τηισ Μιχροσοφτ αρε χυρρεντλψ οφφερινγ ςισυαλ Στυδιο.Νετ 2005 Εξπρεσσ Εδιτιον φορ φρεε, ανδ τηισ ισ αϖαιλαβλε ατ

ηττπ://µσδν.µιχροσοφτ.χοµ/ϖστυδιο/εξπρεσσ/ Αν αλτερνατιϖε οπεν σουρχε Ι∆Ε, Σηαρπ∆εϖελοπ, ισ αϖαιλαβλε φροµ ηττπ://ωωω.ιχσηαρπχοδε.χοµ/ΟπενΣουρχε/Σ∆/ Ιτ ισ αλσο ποσσιβλε το υσε ανψ τεξτ εδιτορ (συχη ασ Νοτεπαδ) το ωριτε τηε Χ# χοδε

Ψου ωιλλ νεεδ το δοωνλοαδ ανδ ινσταλλ τηε Νετ Φραµεωορκ Σ∆Κ, ωηιχη χαν βε οβταινεδ φρεελψ φροµ

ηττπ://µσδν.µιχροσοφτ.χοµ/νετφραµεωορκ/δοωνλοαδσ/ηοωτογετ.ασπ Τηισ ισ νεεδεδ το ρυν ΝΕΤ αππλιχατιονσ ανδ, µορε ιµπορταντλψ φορ υσ, χονταινσ τηε Χ# Χοµπιλερ τηατ ψου ωιλλ νεεδ το χοµπιλε προγραµσ ψου ωριτε

Φιναλλψ, φορ νον−Ωινδοωσ υσερσ, τηε Μονο Προϕεχτ συππλιεσ αν οπεν σουρχε Χ# χοµπιλερ, Νετ ρυντιµε ανδ χλασσ λιβραρψ ιµπλεµεντατιον Φορ µορε ινφορµατιον, σεε ηττπ://ωωω.µονο−προϕεχτ.χοµ/

Τηε χοδε εξαµπλεσ ιν τηισ βοοκ ωερε ωριττεν ανδ τεστεδ ωιτη τηε Νετ Φραµεωορκ ϖερσιον 1.1 ανδ ςισυαλ Στυδιο

2003, βυτ σηουλδ ωορκ φινε ωιτη λατερ ϖερσιονσ Τηεψ ηαϖε νοτ βεεν τεστεδ ωιτη Μονο

Τηε Χ# Λανγυαγε

Χ# (προνουνχεδ Χ−Σηαρπ) ισ νο δουβτ τηε λανγυαγε οφ χηοιχε ιν τηε Νετ ενϖιρονµεντ Ιτ ισ α ωηολε νεω λανγυαγε φρεε οφ τηε βαχκωαρδ χοµπατιβιλιτψ χυρσε ωιτη α ωηολε βυνχη οφ νεω, εξχιτινγ ανδ προµισινγ φεατυρεσ Ιτ ισ αν Οβϕεχτ Οριεντεδ Προγραµµινγ λανγυαγε ανδ ηασ ατ ιτσ χορε, µανψ σιµιλαριτιεσ το ϑαϖα, Χ++ ανδ ςΒ Ιν φαχτ, Χ# χοµβινεσ τηε ποωερ ανδ εφφιχιενχψ οφ Χ++, τηε σιµπλε ανδ χλεαν ΟΟ δεσιγν οφ ϑαϖα ανδ τηε λανγυαγε

σιµπλιφιχατιον οφ ςισυαλ Βασιχ

Trang 18

Λικε ϑαϖα, Χ# αλσο δοεσ νοτ αλλοω µυλτιπλε ινηεριτανχε ορ τηε υσε οφ ποιντερσ (ιν σαφε/µαναγεδ χοδε), βυτ δοεσ προϖιδε γαρβαγε µεµορψ χολλεχτιον ατ ρυντιµε, τψπε ανδ µεµορψ αχχεσσ χηεχκινγ Ηοωεϖερ, χοντραρψ το ϑΑςΑ, Χ# µαινταινσ τηε υνιθυε υσεφυλ οπερατιονσ οφ Χ++ λικε οπερατορ οϖερλοαδινγ, ενυµερατιονσ, πρε−προχεσσορ

διρεχτιϖεσ, ποιντερσ (ιν υνµαναγεδ/υν−σαφε χοδε), φυνχτιον ποιντερσ (ιν τηε φορµ οφ δελεγατεσ) ανδ προµισεσ το ηαϖε τεµπλατε συππορτ ιν τηε νεξτ ϖερσιονσ Λικε ςΒ, ιτ αλσο συππορτσ τηε χονχεπτσ οφ προπερτιεσ (χοντεξτ σενσιτιϖε φιελδσ)

Ιν αδδιτιον το τηισ, Χ# χοµεσ υπ ωιτη σοµε νεω ανδ εξχιτινγ φεατυρεσ συχη ασ ρεφλεχτιονσ, αττριβυτεσ, µαρσηαλλινγ, ρεµοτινγ, τηρεαδσ, στρεαµσ, δατα αχχεσσ ωιτη Α∆Ο.Νετ ανδ µορε

Τηε Νετ Αρχηιτεχτυρε ανδ Νετ Φραµεωορκ

Ιν τηε Νετ Αρχηιτεχτυρε ανδ τηε Νετ Φραµεωορκ τηερε αρε διφφερεντ ιµπορταντ τερµσ ανδ χονχεπτσ ωηιχη ωε ωιλλ δισχυσσ ονε βψ ονε:−

Τηε Χοµµον Λανγυαγε Ρυντιµε (ΧΛΡ)

Τηε µοστ ιµπορταντ χονχεπτ οφ τηε Νετ Φραµεωορκ ισ τηε εξιστενχε ανδ φυνχτιοναλιτψ οφ τηε Νετ Χοµµον Λανγυαγε Ρυντιµε (ΧΛΡ), αλσο χαλλεδ Νετ Ρυντιµε φορ σηορτ Ιτ ισ α φραµεωορκ λαψερ τηατ ρεσιδεσ αβοϖε τηε ΟΣ ανδ ηανδλεσ τηε εξεχυτιον οφ αλλ τηε Νετ αππλιχατιονσ Ουρ προγραµσ δον∋τ διρεχτλψ χοµµυνιχατε ωιτη τηε ΟΣ βυτ γο τηρουγη τηε ΧΛΡ

ΜΣΙΛ (Μιχροσοφτ Ιντερµεδιατε Λανγυαγε) Χοδε

Ωηεν ωε χοµπιλε ουρ Νετ Προγραµ υσινγ ανψ Νετ χοµπλιαντ λανγυαγε (συχη ασ Χ#, ςΒ.Νετ ορ Χ++.Νετ) ουρ σουρχε χοδε δοεσ νοτ γετ χονϖερτεδ ιντο τηε εξεχυταβλε βιναρψ χοδε, βυτ το αν ιντερµεδιατε χοδε κνοων ασ ΜΣΙΛ ωηιχη ισ ιντερπρετεδ βψ τηε Χοµµον Λανγυαγε Ρυντιµε ΜΣΙΛ ισ οπερατινγ σψστεµ ανδ ηαρδωαρε ινδεπενδεντ χοδε Υπον προγραµ εξεχυτιον, τηισ ΜΣΙΛ (ιντερµεδιατε χοδε) ισ χονϖερτεδ το βιναρψ εξεχυταβλε χοδε (νατιϖε χοδε) Χροσσ λανγυαγε ρελατιονσηιπσ αρε ποσσιβλε ασ τηε ΜΣΙΛ χοδε ισ σιµιλαρ φορ εαχη Νετ λανγυαγε

Χοδε ιν ανψ Νετ

Λανγυαγε

ΜΣΙΛ Χοδε

Εξεχυταβλε Νατιϖε Χοδε

Λανγυαγε Χοµπιλερ

ϑυστ Ιν Τιµε Χοµπιλερ

Ωινδοωσ ΟΣ Χοµµον Λανγυαγε Ρυντιµε (ΧΛΡ)

Ουρ Νετ Αππλιχατιονσ

Trang 19

19

ϑυστ Ιν Τιµε Χοµπιλερσ (ϑΙΤερσ)

Ωηεν ουρ ΙΛ χοµπιλεδ χοδε νεεδσ το βε εξεχυτεδ, τηε ΧΛΡ ινϖοκεσ τηε ϑΙΤ χοµπιλερ, ωηιχη χοµπιλε τηε ΙΛ χοδε το νατιϖε εξεχυταβλε χοδε (.εξε ορ δλλ) τηατ ισ δεσιγνεδ φορ τηε σπεχιφιχ µαχηινε ανδ ΟΣ ϑΙΤερσ ιν µανψ ωαψσ αρε διφφερεντ φροµ τραδιτιοναλ χοµπιλερσ ασ τηεψ χοµπιλε τηε ΙΛ το νατιϖε χοδε ονλψ ωηεν δεσιρεδ; ε.γ., ωηεν α φυνχτιον

ισ χαλλεδ, τηε ΙΛ οφ τηε φυνχτιον∋σ βοδψ ισ χονϖερτεδ το νατιϖε χοδε ϕυστ ιν τιµε Σο, τηε παρτ οφ χοδε τηατ ισ νοτ υσεδ

βψ τηατ παρτιχυλαρ ρυν ισ νεϖερ χονϖερτεδ το νατιϖε χοδε Ιφ σοµε ΙΛ χοδε ισ χονϖερτεδ το νατιϖε χοδε, τηεν τηε νεξτ τιµε ιτ∋σ νεεδεδ, τηε ΧΛΡ ρευσεσ τηε σαµε (αλρεαδψ χοµπιλεδ) χοπψ ωιτηουτ ρε−χοµπιλινγ Σο, ιφ α προγραµ ρυνσ φορ σοµε τιµε (ασσυµινγ τηατ αλλ ορ µοστ οφ τηε φυνχτιονσ γετ χαλλεδ), τηεν ιτ ωον∋τ ηαϖε ανψ ϕυστ−ιν−τιµε περφορµανχε πεναλτψ

Ασ ϑΙΤερσ αρε αωαρε οφ τηε σπεχιφιχ προχεσσορ ανδ ΟΣ ατ ρυντιµε, τηεψ χαν οπτιµιζε τηε χοδε εξτρεµελψ εφφιχιεντλψ ρεσυλτινγ ιν ϖερψ ροβυστ αππλιχατιονσ Αλσο, σινχε α ϑΙΤ χοµπιλερ κνοωσ τηε εξαχτ χυρρεντ στατε οφ εξεχυταβλε χοδε, τηεψ χαν αλσο οπτιµιζε τηε χοδε βψ ιν−λινινγ σµαλλ φυνχτιον χαλλσ (λικε ρεπλαχινγ βοδψ οφ σµαλλ φυνχτιον ωηεν ιτσ χαλλεδ ιν α λοοπ, σαϖινγ τηε φυνχτιον χαλλ τιµε) Αλτηουγη Μιχροσοφτ στατεδ τηατ Χ# ανδ Νετ αρε νοτ χοµπετινγ ωιτη λανγυαγεσ λικε Χ++ ιν εφφιχιενχψ ανδ σπεεδ οφ εξεχυτιον, ϑΙΤερσ χαν µακε ψουρ χοδε εϖεν φαστερ τηαν Χ++ χοδε ιν σοµε χασεσ ωηεν τηε προγραµ ισ ρυν οϖερ αν εξτενδεδ περιοδ οφ τιµε (λικε ωεβ−σερϖερσ)

Τηε Φραµεωορκ Χλασσ Λιβραρψ (ΦΧΛ)

Τηε Νετ Φραµεωορκ προϖιδεσ α ηυγε Φραµεωορκ (ορ Βασε) Χλασσ Λιβραρψ (ΦΧΛ) φορ χοµµον, υσυαλ τασκσ ΦΧΛ χονταινσ τηουσανδσ οφ χλασσεσ το προϖιδε αχχεσσ το Ωινδοωσ ΑΠΙ ανδ χοµµον φυνχτιονσ λικε Στρινγ Μανιπυλατιον, Χοµµον ∆ατα Στρυχτυρεσ, ΙΟ, Στρεαµσ, Τηρεαδσ, Σεχυριτψ, Νετωορκ Προγραµµινγ, Ωινδοωσ Προγραµµινγ, Ωεβ

Προγραµµινγ, ∆ατα Αχχεσσ, ετχ Ιτ ισ σιµπλψ τηε λαργεστ στανδαρδ λιβραρψ εϖερ σηιππεδ ωιτη ανψ δεϖελοπµεντ

ενϖιρονµεντ ορ προγραµµινγ λανγυαγε Τηε βεστ παρτ οφ τηισ λιβραρψ ισ τηεψ φολλοω εξτρεµελψ εφφιχιεντ ΟΟ δεσιγν (δεσιγν παττερνσ) µακινγ τηειρ αχχεσσ ανδ υσε ϖερψ σιµπλε ανδ πρεδιχταβλε Ψου χαν υσε τηε χλασσεσ ιν ΦΧΛ ιν ψουρ προγραµ ϕυστ ασ ψου ωουλδ υσε ανψ οτηερ χλασσ Ψου χαν εϖεν αππλψ ινηεριτανχε ανδ πολψµορπηισµ το τηεσε χλασσεσ

Τηε Χοµµον Λανγυαγε Σπεχιφιχατιον (ΧΛΣ)

Εαρλιερ, ωε υσεδ τηε τερµ ∋.Νετ Χοµπλιαντ Λανγυαγε∋ ανδ στατεδ τηατ αλλ τηε Νετ χοµπλιαντ λανγυαγεσ χαν µακε υσε

οφ ΧΛΡ ανδ ΦΧΛ Βυτ ωηατ µακεσ α λανγυαγε α ∋.Νετ χοµπλιαντ∋ λανγυαγε? Τηε ανσωερ ισ τηε Χοµµον Λανγυαγε Σπεχιφιχατιον (ΧΛΣ) Μιχροσοφτ ηασ ρελεασεδ α σµαλλ σετ οφ σπεχιφιχατιονσ τηατ εαχη λανγυαγε σηουλδ µεετ το θυαλιφψ

ασ α Νετ Χοµπλιαντ Λανγυαγε Ασ ΙΛ ισ α ϖερψ ριχη λανγυαγε, ιτ ισ νοτ νεχεσσαρψ φορ α λανγυαγε το ιµπλεµεντ αλλ τηε

ΙΛ φυνχτιοναλιτψ; ρατηερ, ιτ µερελψ νεεδσ το µεετ α σµαλλ συβσετ οφ ΧΛΣ το θυαλιφψ ασ α Νετ χοµπλιαντ λανγυαγε Τηισ

ισ τηε ρεασον ωηψ σο µανψ λανγυαγεσ (προχεδυραλ ανδ ΟΟ) αρε νοω ρυννινγ υνδερ τηε Νετ υµβρελλα ΧΛΣ βασιχαλλψ αδδρεσσεσ λανγυαγε δεσιγν ισσυεσ ανδ λαψσ δοων χερταιν στανδαρδσ Φορ ινστανχε, τηερε σηουλδν∋τ βε ανψ γλοβαλ φυνχτιον δεχλαρατιονσ, νο ποιντερσ, νο µυλτιπλε ινηεριτανχε ανδ τηινγσ λικε τηατ Τηε ιµπορταντ ποιντ το νοτε ηερε ισ τηατ ιφ ψου κεεπ ψουρ χοδε ωιτηιν τηε ΧΛΣ βουνδαρψ, ψουρ χοδε ισ γυαραντεεδ το βε υσαβλε ιν ανψ οτηερ Νετ λανγυαγε

Trang 20

Τηε Χοµµον Τψπε Σψστεµ (ΧΤΣ)

.Νετ αλσο δεφινεσ α Χοµµον Τψπε Σψστεµ (ΧΤΣ) Λικε ΧΛΣ, ΧΤΣ ισ αλσο α σετ οφ στανδαρδσ ΧΤΣ δεφινεσ τηε βασιχ δατα τψπεσ τηατ ΙΛ υνδερστανδσ Εαχη Νετ χοµπλιαντ λανγυαγε σηουλδ µαπ ιτσ δατα τψπεσ το τηεσε στανδαρδ δατα τψπεσ Τηισ µακεσ ιτ ποσσιβλε φορ τηε 2 λανγυαγεσ το χοµµυνιχατε ωιτη εαχη οτηερ βψ πασσινγ/ρεχειϖινγ παραµετερσ

το ανδ φροµ εαχη οτηερ Φορ εξαµπλε, ΧΤΣ δεφινεσ α τψπε, Ιντ32, αν ιντεγραλ δατα τψπε οφ 32 βιτσ (4 βψτεσ) ωηιχη ισ µαππεδ βψ Χ# τηρουγη ιντ ανδ ςΒ.Νετ τηρουγη ιτσ Ιντεγερ δατα τψπε

Γαρβαγε Χολλεχτιον (ΓΧ)

ΧΛΡ αλσο χονταινσ τηε Γαρβαγε Χολλεχτορ (ΓΧ), ωηιχη ρυνσ ιν α λοω−πριοριτψ τηρεαδ ανδ χηεχκσ φορ υν−ρεφερενχεδ, δψναµιχαλλψ αλλοχατεδ µεµορψ σπαχε Ιφ ιτ φινδσ σοµε δατα τηατ ισ νο λονγερ ρεφερενχεδ βψ ανψ ϖαριαβλε/ρεφερενχε, ιτ ρε−χλαιµσ ιτ ανδ ρετυρνσ ιτ το τηε ΟΣ Τηε πρεσενχε οφ α στανδαρδ Γαρβαγε Χολλεχτορ φρεεσ τηε προγραµµερ φροµ κεεπινγ τραχκ οφ δανγλινγ δατα Ασκ ανψ Χ++ προγραµµερ ηοω βιγ α ρελιεφ ιτ ισ!

Τηε Νετ Φραµεωορκ

Τηε Νετ Φραµεωορκ ισ τηε χοµβινατιον οφ λαψερσ οφ ΧΛΡ, ΦΧΛ, ∆ατα ανδ ΞΜΛ Χλασσεσ ανδ ουρ Ωινδοωσ, Ωεβ αππλιχατιονσ ανδ Ωεβ Σερϖιχεσ Α διαγραµ οφ τηε Νετ Φραµεωορκ ισ πρεσεντεδ βελοω φορ βεττερ υνδερστανδινγ

Χ# χοµπαρεδ το Χ++

Ιν τερµσ οφ περφορµανχε ανδ εφφιχιενχψ ιν τηε υσε οφ µεµορψ ανδ οτηερ ρεσουρχεσ, Χ++ δοεσ ουτχλασσ Χ# Βυτ αρε περφορµανχε ανδ σπεεδ τηε ονλψ µεασυρε ωηεν ιτ χοµεσ το χηοοσινγ α δεϖελοπµεντ ενϖιρονµεντ? Νο! Χ++ ισ νο δουβτ α ϖερψ χοµπλεξ, αβστραχτ ανδ λοω−λεϖελ λανγυαγε το προγραµ Ιτ βυρδενσ προγραµµερ ωιτη µανψ

Trang 21

21

λανγυαγε χονστρυχτσ, ανδ µανψ οφ τηοσε αρε ϖερψ ρεπετιτιϖε; ε.γ., το ηανδλε τηε δατα ιν µεµορψ ψου χαν ειτηερ υσε ϖαριαβλε, ποιντερ ορ ρεφερενχε Χ# ατ ιτσ χορε ισ ϖερψ σιµπλε ψετ ποωερφυλ µοδερν λανγυαγε ωηιχη ηασ βεεν µαδε ωηιλε κεεπινγ ιν µινδ τηε εξπεριενχε οφ δεϖελοπερσ οϖερ τηε ψεαρσ ανδ τηειρ χυρρεντ νεεδσ Ονε οφ τηε βιγγεστ χονχερνσ ιν τηε δεϖελοπµεντ µαρκετ ισ το µακε προγραµσ τηατ αρε ρε−υσαβλε, µαινταιναβλε, σχαλαβλε, πορταβλε ανδ εασψ το δεβυγ Χ# χοµεσ ριγητ ωιτη τηεσε ισσυεσ Εϖερψ σινγλε Χ++ δεϖελοπερ κνοωσ ηοω διφφιχυλτ ιτ ισ το µαναγε βιγγερ Χ++ προγραµ ανδ δεβυγ τηεµ Ιτ χαν βε α νιγητµαρε το φινδ τηε ρεασον ωηψ α προγραµ χρασηεσ ρανδοµλψ Τηε σολε ρεασον φορ τηισ, το µε, ισ τηε βαχκωαρδσ−χοµπατιβιλιτψ χυρσε Τηεψ µαδε Χ++ ον τηε στρυχτυρε οφ Χ, α στρυχτυρεδ προγραµµινγ λανγυαγε, σο ιτ νεϖερ βεχαµε α τρυε οβϕεχτ οριεντεδ προγραµµινγ λανγυαγε ονλψ, ανδ ιφ τηε χοµπιλερ αλλοωσ µε το γο ιν τηε στρυχτυρεδ ωαψ οφ σολϖινγ προβλεµ, ωηο αρε ψου το µακε µε τακε αν οβϕεχτ οριεντεδ αππροαχη? Αλσο Βϕαρνε Στρουστρυπ, τηε φουνδερ οφ Χ++ σαιδ, ∀Χ++ ισ α µυλτι−παραδιγµ λανγυαγε νοτ ονλψ ΟΟ λανγυαγε∀ Τηε πριµε αδϖανταγεσ οφ υσινγ Χ# ινχλυδε συππορτ φορ τηε χοµµον λανγυαγε ρυντιµε, Φραµεωορκ χλασσ λιβραρψ, ανδ α νεω, χλεαν οβϕεχτ οριεντεδ δεσιγν φρεε οφ τηε βαχκωαρδσ−χοµπατιβιλιτψ χυρσε

Τηε ςισυαλ Στυδιο.Νετ Ι∆Ε

Μιχροσοφτ ςισυαλ Στυδιο.Νετ ισ αν Ιντεγρατεδ ∆εϖελοπµεντ Ενϖιρονµεντ (Ι∆Ε), ωηιχη ισ τηε συχχεσσορ οφ ςισυαλ Στυδιο 6 Ιτ εασεσ τηε δεϖελοπµεντ προχεσσ οφ τηε Νετ Αππλιχατιονσ (ςΧ#.Νετ, ςΒ.Νετ, ςΧ++.Νετ, ϑΣχριπτ.Νετ, ϑ#.Νετ, ΑΣΠ.Νετ, ανδ µορε) Τηε ρεϖολυτιοναρψ αππροαχη ιν τηισ νεω ιµπροϖεδ ϖερσιον ισ τηατ φορ αλλ τηε ςισυαλ Στυδιο.Νετ Χοµπλιαντ Λανγυαγεσ υσε τηε σαµε Ι∆Ε, δεβυγγερ, προϕεχτ ανδ σολυτιον εξπλορερ, χλασσ ϖιεω, προπερτιεσ ταβ, τοολ βοξ, στανδαρδ µενυ ανδ τοολβαρσ Τηε κεψ φεατυρεσ οφ ςισυαλ Στυδιο.Νετ ινχλυδε: Τηε Ι∆Ε προϖιδεσ ϖαριουσ υσεφυλ δεϖελοπµεντ τοολσ συχη ασ:

! Κεψωορδ ανδ σψνταξ ηιγηλιγητινγ

! Ιντελλισενσε (αυτο χοµπλετε), ωηιχη ηελπσ βψ αυτοµατιχαλλψ χοµπλετινγ τηε σψνταξ ασ ψου τψπε α δοτ (.) ωιτη οβϕεχτσ, ενυµερατιονσ, ναµεσπαχεσ ανδ ωηεν ψου υσε τηε “Νεω” κεψωορδ

! Προϕεχτ ανδ σολυτιον µαναγεµεντ ωιτη σολυτιον εξπλορερ τηατ ηελπσ το µαναγε αππλιχατιονσ χονσιστινγ οφ µυλτιπλε φιλεσ

! Ηελπ βυιλδινγ υσερ ιντερφαχε ωιτη σιµπλε δραγ ανδ δροπ συππορτ

! Προπερτιεσ ταβ τηατ αλλοω ψου το σετ διφφερεντ προπερτιεσ φορ µυλτιπλε ωινδοωσ ανδ ωεβ χοντρολσ

! Στανδαρδ δεβυγγερ τηατ αλλοωσ ψου το δεβυγ ψουρ προγραµ υσινγ πυττινγ βρεακ ποιντσ φορ οβσερϖινγ ρυν−τιµε βεηαϖιορ

Trang 22

προϕεχτσ αρε στορεδ ασ ∋.ϖβπροϕ∋ φιλεσ Τηερε αρε σεϖεραλ διφφερεντ κινδσ οφ προϕεχτσ συχη ασ Χονσολε Αππλιχατιονσ, Ωινδοωσ Αππλιχατιονσ, ΑΣΠ.Νετ Ωεβ Αππλιχατιονσ, Χλασσ Λιβραριεσ ανδ µορε

Α σολυτιον ον τηε οτηερ ηανδ ισ α πλαχεηολδερ φορ διφφερεντ λογιχαλλψ ρελατεδ προϕεχτσ τηατ µακε σοµε αππλιχατιον Φορ εξαµπλε, α σολυτιον µαψ χονσιστ οφ αν ΑΣΠ.Νετ Ωεβ Αππλιχατιον προϕεχτ ανδ α Ωινδοωσ Φορµ προϕεχτ Τηε ινφορµατιον φορ α σολυτιον ισ στορεδ ιν ∋.σλν∋ φιλεσ ανδ χαν βε µαναγεδ υσινγ ςισυαλ Στυδιο.Νετ∋σ Σολυτιον Εξπλορερ Σολυτιονσ αρε σιµιλαρ το ςΒ 6∋σ Προϕεχτ Γρουπ ανδ ςΧ++ 6∋σ ωορκσπαχε

Τοολβοξ, Προπερτιεσ ανδ Χλασσ ςιεω Ταβσ

Νοω τηερε ισ α σινγλε τοολβοξ φορ αλλ τηε ςισυαλ Στυδιο.Νετ∋σ λανγυαγεσ ανδ τοολσ Τηε τοολβοξ (υσυαλλψ πρεσεντ ον τηε λεφτ ηανδ σιδε) χονταινσ α νυµβερ οφ χοµµον χοντρολσ φορ ωινδοωσ, ωεβ ανδ δατα αππλιχατιονσ λικε τηε τεξτ βοξ, χηεχκ βοξ, τρεε ϖιεω, λιστ βοξ, µενυσ, φιλε οπεν διαλογ, ετχ

! Τηε Προπερτιεσ Ταβ (υσυαλλψ πρεσεντ ον τηε ριγητ ηανδ σιδε ιν τηε Ι∆Ε) αλλοωσ ψου το σετ τηε προπερτιεσ ον χοντρολσ ανδ φορµσ ωιτηουτ γεττινγ ιντο χοδε

! Τηε Χλασσ ςιεω Ταβ σηοωσ αλλ τηε χλασσεσ τηατ ψουρ προϕεχτ χονταινσ αλονγ ωιτη τηε µετηοδσ ανδ φιελδσ ιν τρεε ηιεραρχηψ Τηισ ισ σιµιλαρ το ςΧ++ 6∋σ χλασσ ϖιεω

Ωριτινγ Ψουρ Φιρστ Ηελλο Ωορλδ Χονσολε Αππλιχατιον ιν Χ#

Ιν τηε φολλοωινγ τεξτ, ωε ωιλλ βυιλδ ουρ φιρστ Χ# αππλιχατιον ωιτη, ανδ τηεν ωιτηουτ, ςισυαλ Στυδιο.Νετ Ωε ωιλλ σεε ηοω το ωριτε, χοµπιλε, ανδ εξεχυτε τηε Χ# αππλιχατιον Λατερ ιν τηε χηαπτερ, ωε ωιλλ εξπλαιν τηε διφφερεντ χονχεπτσ

Trang 23

23

Σαϖε τηισ ωιτη ανψ φιλε ναµε ωιτη τηε εξτενσιον ∀.χσ∀ Εξαµπλε: ∋ΜψΦιρστΑππλιχατιον.χσ∋ Το χοµπιλε τηισ φιλε, γο το χοµµανδ προµπτ ανδ ωριτε:

csc MyFirstApplication.cs

Τηισ ωιλλ χοµπιλε ψουρ προγραµ ανδ χρεατε αν εξε φιλε (ΜψΦιρστΑππλιχατιον.εξε) ιν τηε σαµε διρεχτορψ ανδ ωιλλ ρεπορτ ανψ ερρορσ τηατ µαψ οχχυρ

Το ρυν ψουρ προγραµ, τψπε:

MyFirstApplication

Τηισ ωιλλ πριντ Ηελλο Ωορλδ ασ α ρεσυλτ ον ψουρ χονσολε σχρεεν Σιµπλε, ισν∋τ ιτ? Λετ∋σ δο τηε σαµε προχεδυρε ωιτη ςισυαλ Στυδιο.Νετ:

Ωιτη ςισυαλ Στυδιο.Νετ

Σταρτ Μιχροσοφτ ςισυαλ Στυδιο.Νετ ανδ σελεχτ Φιλε − Νεω − Προϕεχτ; τηισ ωιλλ σηοω τηε οπεν φιλε διαλογ Σελεχτ ςισυαλ Χ# Προϕεχτ φροµ Προϕεχτ Τψπε ανδ σελεχτ Χονσολε Αππλιχατιον φροµ Τεµπλατε Ωριτε ΜψΗελλοΩορλδΑππλιχατιον ιν τηε ναµε τεξτ βοξ βελοω ανδ χλιχκ ΟΚ

Trang 24

Τηισ ωιλλ σηοω ψου τηε ινιτιαλ δεφαυλτ χοδε φορ ψουρ ηελλο ωορλδ αππλιχατιον:

Ρεµοϖε τηε δοχυµεντατιον χοµµεντσ (λινεσ σταρτινγ ωιτη ///), χηανγε τηε ναµε οφ χλασσ φροµ Χλασσ1 το ΗελλοΩορλδ ανδ ωριτε

Console.WriteLine("Hello World"); in place of //TODO: Add code

Trang 25

25

Νοω το χοµπιλε ανδ εξεχυτε ψουρ αππλιχατιον, σελεχτ ∆εβυγ − Σταρτ Ωιτηουτ ∆εβυγγινγ ορ πρεσσ Χτρλ+Φ5 Τηισ ωιλλ οπεν α νεω Χονσολε Ωινδοω ωιτη Ηελλο Ωορλδ ωριττεν ιν ιτ Ονχε ψου πρεσσ ανψ κεψ, τηε ωινδοω ωιλλ χλοσε, τερµινατινγ τηε προγραµ

Υνδερστανδινγ τηε Ηελλο Ωορλδ Αππλιχατιον Χοδε:

Τηε φιρστ λινε οφ ουρ προγραµ (υσινγ Σψστεµ;) αππεαρσ ιν ϖιρτυαλλψ αλλ τηε Χ# προγραµσ Ιτ γιϖεσ υσ αχχεσσ το τηε χορε φυνχτιοναλιτψ οφ ουρ χοµπυτερ σψστεµ Ωε ωιλλ δισχυσσ τηισ α βιτ λατερ Λετ∋σ φιρστ σεε ωηατ τηε σεχονδ λινε

(ναµεσπαχε ΜψΗελλοΩορλδΑππλιχατιον) µεανσ

Ναµεσπαχεσ ιν Χ#

Α Ναµεσπαχε ισ σιµπλψ α λογιχαλ χολλεχτιον οφ ρελατεδ χλασσεσ ιν Χ# Ωε βυνδλε ουρ ρελατεδ χλασσεσ (λικε τηοσε ρελατεδ ωιτη δαταβασε αχτιϖιτψ) ιν σοµε ναµεδ χολλεχτιον χαλλινγ ιτ α ναµεσπαχε (ε.γ., ∆αταΑχτιϖιτψ) Ασ Χ# δοεσ νοτ αλλοω τωο χλασσεσ ωιτη τηε σαµε ναµε το βε υσεδ ιν α προγραµ, τηε σολε πυρποσε οφ υσινγ ναµεσπαχεσ ισ το πρεϖεντ ναµε χονφλιχτσ Τηισ µαψ ηαππεν ωηεν ψου ηαϖε α λαργε νυµβερ οφ χλασσεσ, ασ ισ τηε χασε ιν τηε Φραµεωορκ Χλασσ Λιβραρψ (ΦΧΛ) Ιτ ισ ϖερψ µυχη ποσσιβλε τηατ ουρ Χοννεχτιον Χλασσ ιν ∆αταΑχτιϖιτψ χονφλιχτσ ωιτη τηε Χοννεχτιον Χλασσ οφ ΙντερνετΑχτιϖιτψ Το αϖοιδ τηισ, τηεσε χλασσεσ αρε µαδε παρτ οφ τηειρ ρεσπεχτιϖε ναµεσπαχε Σο τηε φυλλψ θυαλιφιεδ ναµε οφ τηεσε χλασσεσ ωιλλ βε ∆αταΑχτιϖιτψ.Χοννεχτιον ανδ ΙντερνετΑχτιϖιτψ.Χοννεχτιον, ηενχε ρεσολϖινγ ανψ αµβιγυιτψ φορ τηε χοµπιλερ

Σο, ιν τηε σεχονδ λινε οφ ουρ προγραµ ωε αρε δεχλαρινγ τηατ τηε φολλοωινγ χλασσεσ (ωιτηιν { } βλοχκ) αρε παρτ οφ ΜψΗελλοΩορλδΑππλιχατιον ναµεσπαχε

ναµεσπαχε∋

Trang 26

using System.Collections;

ιν ορδερ το αχχεσσ τηε χλασσεσ δεφινεδ ιν Χολλεχτιον ναµεσπαχε ωηιχη ισ α συβ/ιντερναλ ναµεσπαχε οφ Σψστεµ ναµεσπαχε

Τηε χλασσ Κεψωορδ

Αλλ οφ ουρ Χ# προγραµσ χονταιν ατ λεαστ ονε χλασσ Τηε Μαιν() µετηοδ ρεσιδεσ ιν ονε οφ τηεσε χλασσεσ Χλασσεσ αρε α χοµβινατιον οφ δατα (φιελδσ) ανδ φυνχτιονσ (µετηοδσ) τηατ χαν βε περφορµεδ ον τηισ δατα ιν ορδερ το αχηιεϖε τηε σολυτιον το ουρ προβλεµ Ωε ωιλλ σεε τηε χονχεπτ οφ χλασσ ιν µορε δεταιλ ιν τηε χοµινγ δαψσ Χλασσεσ ιν Χ# αρε δεφινεδ υσινγ τηε χλασσ κεψωορδ φολλοωεδ βψ τηε ναµε οφ χλασσ

Τηε Μαιν() Μετηοδ

Ιν τηε νεξτ λινε ωε δεφινεδ τηε Μαιν() µετηοδ οφ ουρ προγραµ:

static void Main(string[] args)

Τηισ ισ τηε στανδαρδ σιγνατυρε οφ τηε Μαιν µετηοδ ιν Χ# Τηε Μαιν µετηοδ ισ τηε εντρψ ποιντ οφ ουρ προγραµ, ι.ε., ουρ Χ# προγραµ σταρτσ ιτσ εξεχυτιον φροµ τηε φιρστ λινε οφ Μαιν µετηοδ ανδ τερµινατεσ ωιτη τηε τερµινατιον οφ Μαιν µετηοδ Τηε Μαιν µετηοδ ισ δεσιγνατεδ ασ στατιχ ασ ιτ ωιλλ βε χαλλεδ βψ τηε Χοµµον Λανγυαγε Ρυντιµε (ΧΛΡ)

Trang 27

27

ωιτηουτ µακινγ ανψ οβϕεχτ οφ ουρ ΗελλοΩορλδ Χλασσ (ωηιχη ισ τηε δεφινιτιον οφ στατιχ µετηοδσ, φιελδσ ανδ

προπερτιεσ) Τηε µετηοδ ισ αλσο δεχλαρεδ ϖοιδ ασ ιτ δοεσ νοτ ρετυρν ανψτηινγ Μαιν ισ τηε (στανδαρδ) ναµε οφ τηισ µετηοδ, ωηιλε στρινγ [] αργσ ισ τηε λιστ οφ παραµετερσ τηατ χαν βε πασσεδ το µαιν ωηιλε εξεχυτινγ τηε προγραµ φροµ χοµµανδ λινε Ωε ωιλλ σεε τηισ λατερ

Ονε ιντερεστινγ ποιντ ηερε ισ τηατ ιτ ισ λεγιτιµατε το ηαϖε µυλτιπλε Μαιν() µετηοδσ ιν Χ# προγραµ Βυτ, ψου ηαϖε το εξπλιχιτλψ ιδεντιφψ ωηιχη Μαιν µετηοδ ισ τηε εντρψ ποιντ ατ τηε ρυν−τιµε Χ++ ανδ ϑαϖα Προγραµµερσ, τακε νοτε τηατ Μαιν σταρτσ ωιτη χαπιταλ ∋Μ∋ ανδ τηε ρετυρν τψπε ισ ϖοιδ

Πριντινγ ον τηε Χονσολε

Ουρ νεξτ λινε πριντσ Ηελλο Ωορλδ ον τηε Χονσολε σχρεεν:

Console.WriteLine("Hello World");

Ηερε ωε χαλλεδ ΩριτεΛινε(), α στατιχ µετηοδ οφ τηε Χονσολε χλασσ δεφινεδ ιν τηε Σψστεµ ναµεσπαχε Τηισ µετηοδ τακεσ α στρινγ (ενχλοσεδ ιν δουβλε θυοτεσ) ασ ιτσ παραµετερ ανδ πριντσ ιτ ον τηε Χονσολε ωινδοω

Χ#, λικε οτηερ Οβϕεχτ Οριεντεδ λανγυαγεσ, υσεσ τηε δοτ (.) οπερατορ το αχχεσσ τηε µεµβερ ϖαριαβλεσ (φιελδσ) ανδ µετηοδσ οφ α χλασσ Αλσο, βραχεσ () αρε υσεδ το ιδεντιφψ µετηοδσ ιν τηε χοδε ανδ στρινγ λιτεραλσ αρε ενχλοσεδ ιν δουβλε θυοτατιον µαρκσ (∀) Λαστλψ, εαχη στατεµεντ ιν Χ# (λικε Χ, Χ++ ανδ ϑαϖα) ενδσ ωιτη α σεµιχολον (;), αλσο χαλλεδ τηε στατεµεντ τερµινατορ

Χοµµεντσ

Χοµµεντσ αρε τηε προγραµµερ∋σ τεξτ το εξπλαιν τηε χοδε, αρε ιγνορεδ βψ τηε χοµπιλερ ανδ αρε νοτ ινχλυδεδ ιν τηε φιναλ εξεχυταβλε χοδε Χ# υσεσ σψνταξ φορ χοµµεντσ τηατ ισ σιµιλαρ το ϑαϖα ανδ Χ++ Τηε τεξτ φολλοωινγ δουβλε σλαση µαρκσ (// ανψ χοµµεντ) αρε λινε χοµµεντσ Τηε χοµµεντ ενδσ ωιτη τηε ενδ οφ τηε λινε:

// This is my main method of program

static void Main()

/* These lines of text

will be ignored by the compiler */

Trang 28

}

Χ# ιντροδυχεσ ανοτηερ κινδ οφ χοµµεντ χαλλεδ ∋δοχυµεντατιον χοµµεντσ∋ Χ# χαν υσε τηεσε το γενερατε τηε δοχυµεντατιον φορ ψουρ χλασσεσ ανδ προγραµ Τηεσε αρε λινε χοµµεντσ ανδ σταρτ ωιτη τριπλε σλαση µαρκ (///):

/// These are documentation comments

! Τηε τηρεε τψπεσ οφ χοµµεντσ εξιστ ιν Χ#; λινε, βλοχκ ανδ δοχυµεντατιον Τηεσε αρε ιγνορεδ βψ τηε χοµπιλερ ανδ αρε υσεδ ονλψ το ενηανχε τηε ρεαδαβιλιτψ ανδ υνδερστανδαβιλιτψ οφ προγραµ φορ τηε

δεϖελοπερσ

! Ενχλοσινγ ψουρ χλασσ ιν σοµε ναµεσπαχε ισ οπτιοναλ Ψου χαν ωριτε προγραµ ωηερε ψουρ χλασσ ισ νοτ ενχλοσεδ βψ ανψ ναµεσπαχε

! Ιτ ισ νοτ µανδατορψ τηατ Μαιν Μετηοδ οφ προγραµ τακεσ ∋στρινγ [] αργσ∋ ασ παραµετερ Ιτ ισ περφεχτλψ ϖαλιδ το ωριτε Μαιν µετηοδ ασ:

static void Main()

{

}

Trang 29

29

Α µορε ιντεραχτιϖε Ηελλο Ωορλδ Αππλιχατιον

Υπ υντιλ νοω, ωε ηαϖε σεεν α ϖερψ στατιχ ηελλο ωορλδ αππλιχατιον τηατ γρεετσ τηε ωηολε ωορλδ ωηεν ιτ ισ εξεχυτεδ Λετ’σ νοω µακε α µορε ιντεραχτιϖε ηελλο ωορλδ τηατ γρεετσ τηε χυρρεντ υσερ οφ ιτ Τηισ προγραµ ωιλλ ασκ τηε υσερ τηειρ ναµε ανδ ωιλλ γρεετ υσινγ ηισ/ηερ ναµε, λικε ∋Ηελλο Φαραζ∋ ωηεν α υσερ ναµεδ ∋Φαραζ∋ ρυνσ ιτ Λετ’σ σεε τηε χοδε φιρστ:

static void Main(string[] args)

{

Console.Write("Please enter your name: ");

string name = Console.ReadLine();

Ιν τηε σεχονδ λινε, ωε δεχλαρεδ α ϖαριαβλε οφ τηε τψπε στρινγ ανδ χαλλεδ ιτ ∋ναµε∋ Τηεν, ωε τοοκ α λινε οφ ινπυτ φροµ τηε υσερ τηρουγη τηε ΡεαδΛινε() µετηοδ οφ τηε Χονσολε χλασσ ανδ στορεδ τηε ρεσυλτ ιν τηε ∋ναµε∋ ϖαριαβλε Τηε ϖαριαβλεσ αρε πλαχεηολδερσ ιν µεµορψ φορ στορινγ δατα τεµποραριλψ δυρινγ τηε εξεχυτιον οφ προγραµ ςαριαβλεσ χαν ηολδ διφφερεντ τψπεσ οφ δατα δεπενδινγ ον τηειρ δατα−τψπε, ε.γ., ιντ ϖαριαβλεσ χαν στορε ιντεγερσ ωηιλε στρινγ ϖαριαβλεσ χαν στορε α στρινγ (σεριεσ) οφ χηαραχτερσ Τηε ΡεαδΛινε() µετηοδ οφ τηε Χονσολε χλασσ (χοντραρψ το ΩριτεΛινε()) ρεαδσ α λινε οφ ινπυτ γιϖεν ατ τηε Χονσολε Ωινδοω Ιτ ρετυρνσ τηισ ινπυτ ασ στρινγ δατα, ωηιχη ωε στορεδ ιν ουρ στρινγ ϖαριαβλε ∋ναµε∋

Αυτηορ∋σ Νοτε:

Α στρινγ ισ ιµπλιχιτ δατα−τψπε ιν Χ# χοντραρψ το οτηερ λανγυαγεσ Ιτ σταρτσ ωιτη σµαλλ ∋σ∋

Ιν τηε τηιρδ λινε, ωε πριντεδ τηε ναµε γιϖεν βψ υσερ ιν λινε 2, αλονγ ωιτη σοµε γρεετινγ τεξτ υσινγ τηε ΩριτεΛινε() µετηοδ οφ τηε Χονσολε χλασσ Ηερε ωε υσεδ τηε συβστιτυτιον παραµετερ {0} το στατε ωηερε ιν τηε λινε τηε δατα ιν τηε ϖαριαβλε ∋ναµε∋ σηουλδ βε ωριττεν ωηεν τηε ΩριτεΛινε() µετηοδ ισ χαλλεδ

Console.WriteLine

("Hello {0}, Good Luck in C#", name);

Ωηεν τηε χοµπιλερ φινδσ α συβστιτυτιον παραµετερ, {ν}, ιτ ρεπλαχεσ ιτ ωιτη τηε (ν+1)τη ϖαριαβλε φολλοωινγ τηε στρινγ Τηε στρινγ ισ δελιµιτεδ ωιτη δουβλε θυοτατιον µαρκσ ανδ εαχη παραµετερ ισ σεπαρατεδ βψ α χοµµα Ηενχε, ιν ουρ

Trang 30

χασε ωηεν τηε χοµπιλερ φινδσ {0}, ιτ ρεπλαχεσ ιτ ωιτη (0+1)τη, ι.ε., τηε 1στ ϖαριαβλε (∋ναµε∋) φολλοωινγ τηε στρινγ Σο ατ ρυν−τιµε, τηε ΧΛΡ ωιλλ ρεαδ ιτ ασ:

Please enter your name: Faraz

Hello Faraz, Good Luck in C#

Trang 31

31

2 Χ# Λανγυαγε Φυνδαµενταλσ

Λεσσον Πλαν

Τοδαψ ωε ωιλλ λεαρν τηε λανγυαγε φυνδαµενταλσ οφ Χ# Ωε ωιλλ εξπλορε τηε δατα τψπεσ ιν Χ#, υσινγ ϖαριαβλεσ, οπερατορσ, φλοω χοντρολ στατεµεντσ λικε ιφ ελσε, λοοπινγ στρυχτυρε ανδ ηοω το υσε αρραψσ

Ασ ωε σαω ιν τηε φιρστ ισσυε, ιµπλιχιτ δατα τψπεσ ιν Νετ χοµπλιαντ λανγυαγεσ αρε µαππεδ το τψπεσ ιν τηε Χοµµον Τψπε Σψστεµ (ΧΤΣ) ανδ ΧΛΣ (Χοµµον Λανγυαγε Σπεχιφιχατιον) Ηενχε, εαχη ιµπλιχιτ δατα τψπε ιν Χ# ηασ ιτσ χορρεσπονδινγ Νετ τψπε Τηε ιµπλιχιτ δατα τψπεσ ιν Χ# αρε:

Trang 32

α δατα στρυχτυρε τηατ στορε ιτεµσ ιν α φιρστ ιν φιρστ ουτ (ΦΙΦΟ) φασηιον Ιτ ισ αν αρεα οφ µεµορψ συππορτεδ βψ τηε προχεσσορ ανδ ιτσ σιζε ισ δετερµινεδ ατ τηε χοµπιλε τιµε Α ηεαπ χονσιστσ οφ µεµορψ αϖαιλαβλε το τηε προγραµ ατ ρυν τιµε Ρεφερενχε τψπεσ αρε αλλοχατεδ υσινγ µεµορψ αϖαιλαβλε φροµ τηε ηεαπ δψναµιχαλλψ (δυρινγ τηε εξεχυτιον οφ προγραµ) Τηε γαρβαγε χολλεχτορ σεαρχηεσ φορ νον−ρεφερενχεδ δατα ιν ηεαπ δυρινγ τηε εξεχυτιον οφ προγραµ ανδ ρετυρνσ τηατ σπαχε το Οπερατινγ Σψστεµ

ςαριαβλεσ

∆υρινγ τηε εξεχυτιον οφ α προγραµ, δατα ισ τεµποραριλψ στορεδ ιν µεµορψ Α ϖαριαβλε ισ τηε ναµε γιϖεν το α µεµορψ λοχατιον ηολδινγ α παρτιχυλαρ τψπε οφ δατα Σο, εαχη ϖαριαβλε ηασ ασσοχιατεδ ωιτη ιτ α δατα τψπε ανδ α ϖαλυε

Trang 33

33

bool isReady = true;

float percentage = 87.88, average = 43.9;

char digit = '7';

Ιν Χ# (λικε οτηερ µοδερν λανγυαγεσ), ψου µυστ δεχλαρε ϖαριαβλεσ βεφορε υσινγ τηεµ Αλσο, τηερε ισ τηε χονχεπτ οφ

∀∆εφινιτε Ασσιγνµεντ∀ ιν Χ# ωηιχη σαψσ ∀λοχαλ ϖαριαβλεσ (ϖαριαβλεσ δεφινεδ ιν α µετηοδ) µυστ βε ινιτιαλιζεδ βεφορε βεινγ υσεδ∀ Τηε φολλοωινγ προγραµ ωον∋τ χοµπιλε:

static void Main()

Χονσταντ ςαριαβλεσ ορ Σψµβολσ

Χονσταντσ αρε ϖαριαβλεσ ωηοσε ϖαλυεσ, ονχε δεφινεδ, χαν νοτ βε χηανγεδ βψ τηε προγραµ Χονσταντ ϖαριαβλεσ αρε δεχλαρεδ υσινγ τηε χονστ κεψωορδ, λικε:

α χαπιταλ λεττερ Φορ εξαµπλε, ϖαριαβλε ναµεσ φολλοωινγ Χαµελ νοτατιον χουλδ βε:

salary totalSalary

myMathsMarks isPaid

Σοµε τψπιχαλ ναµεσ οφ µετηοδ φολλοωινγ Πασχαλ Νοτατιον αρε

Trang 34

GetTotal() Start()

WriteLine() LastIndexOf()

Αλτηουγη ιτ ισ νοτ µανδατορψ το φολλοω τηισ χονϖεντιον, ιτ ισ ηιγηλψ ρεχοµµενδεδ τηατ ψου στριχτλψ φολλοω τηε χονϖεντιον Μιχροσοφτ νο λονγερ συππορτσ Ηυνγαριαν νοτατιον, λικε υσινγ ιΜαρκσ φορ ιντεγερ ϖαριαβλε Αλσο, υσινγ τηε υνδερσχορε _ ιν ιδεντιφιερσ ισ νοτ ενχουραγεδ

// result of addition, subtraction,

// multiplication and modulus operator

int sum=0, difference=0, product=0, modulo=0;

float quotient=0; // result of division

int num1 = 10, num2 = 2; // operand variables

sum = num1 + num2;

difference = num1 - num2;

product = num1 * num2;

Trang 35

Console.WriteLine ("Sum of {0} and {1} is {2}", num1, num2, sum);

Console.WriteLine("Difference of {0} and {1} is {2}", num1, num2, difference);

Console.WriteLine("Product of {0} and {1} is {2}", num1, num2, product);

Console.WriteLine("Quotient of {0} and {1} is {2}", num1, num2, quotient);

Console.WriteLine();

Console.WriteLine("Remainder when 3 is divided by {0} is {1}", num2, modulo);

num1++; // increment num1 by 1

num2 ; // decrement num2 by 1

Console.WriteLine("num1 = {0}, num2 = {1}", num1, num2);

Console.WriteLine("Sum of {0} and {1} is {2}", num1, num2, sum);

Ηερε, {0}, {1} ανδ {2} ωιλλ βε ρεπλαχεδ βψ τηε ϖαλυεσ οφ τηε νυµ1, νυµ2 ανδ συµ ϖαριαβλεσ Ιν {ι}, ι σπεχιφιεσ τηατ (ι+1)τη ϖαριαβλε αφτερ δουβλε θυοτεσ ωιλλ ρεπλαχε ιτ ωηεν πριντεδ το τηε Χονσολε Ηενχε, {0} ωιλλ βε ρεπλαχεδ βψ τηε φιρστ ονε, {1} ωιλλ βε ρεπλαχεδ βψ τηε σεχονδ ϖαριαβλε ανδ σο ον

Trang 36

double doubleValue = 4.67;

// intValue will be equal to 4

int intValue = (int) doubleValue;

Οφ χουρσε, ωηεν χαστινγ τηερε ισ αλωαψσ α δανγερ οφ σοµε λοσσ οφ πρεχισιον; ιν τηε χασε αβοϖε, ωε ονλψ γοτ τηε 4 οφ τηε οριγιναλ 4.67 Σοµετιµεσ, τηε χαστινγ µαψ ρεσυλτ ιν στρανγε ϖαλυεσ:

Trang 37

37

int intValue = 32800;

short shortValue = (short) intValue;

// shortValue would be equal to -32736

ςαριαβλεσ οφ τψπε σηορτ χαν ονλψ τακε ϖαλυεσ ρανγινγ φροµ −32768 το 32767, σο τηε χαστ αβοϖε χαν νοτ ασσιγν 32800

το σηορτςαλυε Ηενχε σηορτςαλυε τοοκ τηε λαστ 16 βιτσ (ασ α σηορτ χονσιστσ οφ 16 βιτσ) οφ τηε ιντεγερ 32800, ωηιχη γιϖεσ τηε ϖαλυε −32736 (σινχε βιτ 16, ωηιχη ρεπρεσεντσ τηε ϖαλυε 32768 ιν αν ιντ, νοω ρεπρεσεντσ −32768) Ιφ ψου τρψ

το χαστ ινχοµπατιβλε τψπεσ λικε:

bool isPaid = false;

int intValue = (int) isPaid;

Ιτ ωον∋τ γετ χοµπιλεδ ανδ τηε χοµπιλερ ωιλλ γενερατε α σψνταξ ερρορ

Ρελατιοναλ Οπερατορσ

Ρελατιοναλ οπερατορσ αρε υσεδ φορ χοµπαρισον πυρποσεσ ιν χονδιτιοναλ στατεµεντσ Χοµµον ρελατιοναλ οπερατορσ ιν Χ# αρε:

int num1 = 5, num2 = 6;

Τηεν:

num1 == num2 // false

num1 != num2 // true

num1 > num2 // false

num1 < num2 // true

num1 <= num2 // true

num1 >= num2 // false

Trang 38

bool firstVar = i>3 && j<10;

// firstVar would be false

bool secondVar = i>3 || j<10;

// secondVar would be true

Ιν τηε φιρστ χοµπαρισον: ι>3 && ϕ<10 ωιλλ ρεσυλτ ιν τρυε ονλψ ιφ βοτη τηε χονδιτιονσ ι>3 ανδ ϕ<10 ρεσυλτ ιν τρυε

Ιν τηε σεχονδ χοµπαρισον: ι>3 || ϕ<10 ωιλλ ρεσυλτ ιν τρυε ιφ ανψ οφ τηε χονδιτιονσ ι>3 ανδ ϕ<10 ρεσυλτ ιν τρυε Ψου χαν, οφ χουρσε, υσε βοτη && ανδ || ιν σινγλε στατεµεντ λικε:

bool firstVar = (i>3 && j<10) || (i<7 && j>10) // firstVar would be true

Ιν τηε αβοϖε στατεµεντ ωε υσεδ παρεντηεσισ το γρουπ ουρ χονδιτιοναλ εξπρεσσιονσ ανδ το αϖοιδ ανψ αµβιγυιτψ

Trang 39

Φλοω Χοντρολ Ανδ Χονδιτιοναλ Στατεµεντσ

Τηε ιφ ελσε στατεµεντ

Χονδιτιον χηεχκινγ ηασ αλωαψσ βεεν τηε µοστ ιµπορταντ χονστρυχτ ιν ανψ λανγυαγε ριγητ φροµ τηε τιµε οφ τηε ασσεµβλψ λανγυαγε δαψσ Χ# προϖιδεσ χονδιτιοναλ στατεµεντσ ιν τηε φορµ οφ τηε ιφ ελσε στατεµεντ Τηε στρυχτυρε οφ τηισ στατεµεντ ισ:

Trang 40

Τηε ελσε χλαυσε αβοϖε ισ οπτιοναλ Α τψπιχαλ εξαµπλε ισ:

if(i==5)

Console.WriteLine("Thank God, I finally became 5.");

Ιν τηε αβοϖε εξαµπλε, τηε χονσολε µεσσαγε ωιλλ βε πριντεδ ονλψ ιφ τηε εξπρεσσιον ι==5 εϖαλυατεσ το τρυε Ιφ ψου ωουλδ λικε το τακε σοµε αχτιον ωηεν τηε χονδιτιον δοεσ νοτ εϖαλυατε το τρυε, τηεν ψου χαν υσε ελσε χλαυσε:

Ngày đăng: 31/03/2014, 16:41

Xem thêm

TỪ KHÓA LIÊN QUAN