Προγραµµερσ Ηεαϖεν: Χ# Σχηοολ 1 14 λεσσονσ το γετ ψου σταρτεδ ωιτη Χ# ανδ .ΝΕΤ Αυτηορ: Φαραζ Ρασηεεδ Εδιτορσ: Τορε Νεστενιυσ ϑονατηαν Ωορτηινγτον Λεε Αδδψ ωωω.προγραµµερσηεαϖεν.χοµ Προγραµµερσ Ηεαϖεν: Χ# Σχηοολ 2 Προγραµµερσ Ηεαϖεν Χ# Σχηοολ Φιρστ Εδιτιον Φαραζ Ρασηεεδ Εδιτεδ Βψ: Τορε Νεστενιυσ ϑονατηαν Ωορτηινγτον Λεε Αδδψ Ωριγητ Προγραµµερσ Ηεαϖεν: Χ# Σχηοολ 3 Χοπψριγητ (Χ) Σψνχηρον ∆ατα 2005−2006. Αλλ ριγητσ ρεσερϖεδ. Πυβλισηεδ 5 τη ∆εχεµβερ 2006. Σψνχηρον ∆ατα Σ.Λ Αϖ. Χλεµεντε ∆ιαζ Ρυιζ Υρβ. Πυεβλα Λυχια λοχαλ 7, 12−20 296 40 Φυενγιρολα, Σπαιν Ελεχτρονιχ ρεδιστριβυτιον οφ τηισ βοοκ ισ περµιττεδ ιφ τηε βοοκ ισ τρανσµιττεδ υνµοδιφιεδ, ιν ιτσ εντιρετψ ανδ νον−χοµµερχιαλλψ. Αλλ οτηερ ρεδιστριβυτιον ανδ χοπψινγ βεψονδ τηατ αλλοωεδ βψ φαιρ υσε ισ προηιβιτεδ ωιτηουτ ωριττεν περµισσιον φροµ Σψνχηρον ∆ατα Σ.Λ. Τηε ινφορµατιον ιν τηισ βοοκ ισ διστριβυτεδ ον αν ∀ασ ισ∀ βασισ, ωιτηουτ ωαρραντψ. Αλτηουγη εϖερψ πρεχαυτιον ηασ βεεν τακεν ιν τηε πρεπαρατιον οφ τηισ ωορκ, νειτηερ τηε αυτηορσ νορ Σψνχηρον ∆ατα σηαλλ ηαϖε ανψ λιαβιλιτψ το ανψ περσον ορ εντιτψ ωιτη ρεσπεχτ το ανψ λοσσ ορ δαµαγε χαυσεδ ορ αλλεγεδ το βε χαυσεδ διρεχτλψ ορ ινδιρεχτλψ βψ τηε ινφορµατιον χονταινεδ ιν τηισ ωορκ. Τραδεµαρκεδ ναµεσ µαψ αππεαρ ιν τηε τεξτ οφ τηισ βοοκ. Τραδεµαρκεδ ναµεσ αρε νοτ εξπλιχιτλψ µαρκεδ ωιτη τηε τραδεµαρκ σψµβολ ωιτηιν τηισ βοοκ, ηοωεϖερ τηεψ αρε ονλψ υσεδ ιν αν εδιτοριαλ φασηιον ανδ το τηε βενεφιτ οφ τηε τραδεµαρκ οωνερ ωιτη νο ιντεντιον οφ ινφρινγεµεντ οφ τηε τραδεµαρκ. Το οβταιν τηε λατεστ υπδατεσ το τηισ βοοκ, το συγγεστ χορρεχτιονσ ορ το µακε οτηερ χοµµεντσ, ϖισιτ: ηττπ://ωωω.προγραµµερσηεαϖεν.χοµ/2/ΧΣηαρπΒοοκ Προγραµµερσ Ηεαϖεν: Χ# Σχηοολ 4 Φορεωορδ φροµ ϑονατηαν Ωορτηινγτον Ι αππροαχηεδ τηε .ΝΕΤ πλατφορµ ανδ τηε Χ# λανγυαγε ωιτη σκεπτιχισµ ιν τηε βεγιννινγ. Α νυµβερ οφ τηινγσ ηαϖε τυρνεδ µε το ϖιεω βοτη οφ τηεµ ασ γενεραλλψ γοοδ τεχηνολογιεσ; εδιτινγ τηε Προγραµµερσ Ηεαϖεν Χ# Σχηοολ, τηε λεσσονσ οφ ωηιχη αρε χολλεχτεδ τογετηερ ιν τηισ ε−βοοκ, ωασ ονε οφ τηεµ. Ιν µανψ ωαψσ τηε .Νετ πλατφορµ ηασ ασκεδ ωηατ δο δεϖελοπερσ ωαστε τιµε δοινγ ανδ τριεδ το ιµπροϖε δεϖελοπερ περφορµανχε. Φορ εξαµπλε, τηε .ΝΕΤ ϖιρτυαλ µαχηινε προϖιδεσ µεµορψ µαναγεµεντ, α τασκ τηατ τακεσ υπ µυχη δεϖελοπερ τιµε ωηεν ιτ ηασ το βε δονε µανυαλλψ. Α λαργε ανδ ωελλ−δοχυµεντεδ χλασσ λιβραρψ ηελπσ αϖοιδ ρε−ινϖεντινγ τηε σαµε ωηεελ µανψ τιµεσ οϖερ. Ιντερ−οπεραβιλιτψ βετωεεν χοδε ιν α νυµβερ οφ λανγυαγεσ ισ µαδε τριϖιαλ. Τηε Χ# λανγυαγε ωασ χρεατεδ αλονγσιδε τηε .ΝΕΤ πλατφορµ. Ιτ χουλδ βε χονσιδερεδ τηε νατιϖε λανγυαγε οφ .ΝΕΤ, προϖιδινγ αχχεσσ το τηε ϖαστ µαϕοριτψ οφ λανγυαγε φεατυρεσ τηατ τηε .ΝΕΤ ρυντιµε ισ οπτιµιζεδ το συππορτ. Ιτ τακεσ τηε βεστ βιτσ οφ ϑαϖα, Χ ανδ Χ++, προδυχινγ α λανγυαγε ωιτη τηε χλεαρ οβϕεχτ οριεντεδ προγραµµινγ χονστρυχτσ οφ ϑαϖα αλονγ ωιτη υσεφυλ φεατυρεσ συχη ασ ενυµερατιονσ ανδ στρυχτυρεσ φροµ Χ. Τηε ινιτιαλ ϖερσιον οφ Χ#, ασ ταυγητ ιν τηε οριγιναλ Χ# Σχηοολ, ισ µοστλψ φοχυσεδ ον τηε οβϕεχτ οριεντεδ προγραµµινγ παραδιγµ. Χ# 2.0 ηασ αδδεδ συππορτ φορ παραµετριχ πολψµορπηισµ (κνοων ασ γενεριχσ) ασ ωελλ ασ α ρανγε οφ οτηερ φεατυρεσ, ανδ Ι ηαϖε ωριττεν αν αδδιτιοναλ χηαπτερ φορ τηισ βοοκ το χοϖερ σοµε οφ τηεσε. Τηε φυτυρε Χ# 3.0 ισ εϖεν µορε αδϖεντυρουσ, βρινγινγ ιν ιδεασ φροµ βοτη δεχλαρατιϖε ανδ φυνχτιοναλ προγραµµινγ. Ι ηοπε τηατ τηισ ε−βοοκ ηελπσ ψου γετ το γριπσ ωιτη τηε Χ# προγραµµινγ λανγυαγε ανδ τηε .Νετ πλατφορµ ανδ προϖεσ α υσεφυλ ρεφερενχε φορ τηε φυτυρε. Ιτ ισ τηε φιρστ εδιτιον, βυτ ηοπεφυλλψ νοτ τηε λαστ ψουρ φεεδβαχκ ωιλλ ηελπ υσ ιν τηατ σενσε, σο πλεασε δο νοτ ηεσιτατε το σενδ ψουρ χοµµεντσ ανδ εσπεχιαλλψ ινφορµατιον αβουτ ανψ µιστακεσ το ινφο≅προγραµµερσηεαϖεν.χοµ . Ηαϖε φυν, ϑονατηαν Ωορτηινγτον Προγραµµερσ Ηεαϖεν Χ# Σχηοολ Εδιτορ Προγραµµερσ Ηεαϖεν: Χ# Σχηοολ 5 Αβουτ Προγραµµερσ Ηεαϖεν Σταρτεδ βψ Τορε Νεστενιυσ ιν 1998, τηε Προγραµµερσ Ηεαϖεν ωεβσιτε ηασ γροων το βε ονε οφ τηε λεαδινγ δεϖελοπερ ρεσουρχε σιτεσ ον τηε νετ. Τακινγ ιτσ ναµε φροµ α ρανγε οφ δεϖελοπερ ρεσουρχε Χ∆σ πυβλισηεδ βψ Τορε ιν τηε ψεαρσ βεφορε τηε σιτε βεγαν, ιτ νοω φεατυρεσ οϖερ 30,000 ρεσουρχεσ σπαννινγ α ωιδε ρανγε οφ τεχηνολογιεσ, φροµ ασσεµβλψ προγραµµινγ το ΞΜΛ Τοδαψ Προγραµµερσ Ηεαϖεν ισ µορε τηαν ϕυστ α µασσιϖε ρεσουρχε διρεχτορψ. Ιτ φεατυρεσ µανψ µεσσαγε βοαρδσ ωηερε ηυνδρεδσ οφ τηουσανδσ οφ µεσσαγεσ ηαϖε βεεν ποστεδ ον α ϖαστ ρανγε οφ τοπιχσ, ωιτη εξπερτσ ανσωερινγ θυεστιονσ φορ τηοσε γεττινγ σταρτεδ. Ρεχεντ ψεαρσ ηαϖε σεεν α γρεατ δεαλ οφ οριγιναλ χοντεντ πυβλισηεδ βψ Προγραµµερσ Ηεαϖεν τοο. Τηε Χ# Σχηοολ, νοω χολλεχτεδ τογετηερ ιντο τηισ ε−βοοκ, ωασ ονε ϖερψ συχχεσσφυλ εξαµπλε οφ τηισ. Τηε λατεστ δεϖελοπµεντσ ον τηε σιτε ινχλυδε α Υσενετ αρχηιϖε ανδ α ρανγε οφ Ωεβ Τοολσ, εσσεντιαλ ωεβ−βασεδ υτιλιτιεσ δεσιγνεδ το ασσιστ τηοσε ωηο αρε βυιλδινγ ωεβ σιτεσ ανδ ωεβ−βασεδ αππλιχατιονσ. Σινχε 2000, Τορε ηασ ωορκεδ φυλλ τιµε ον Προγραµµερσ Ηεαϖεν. Α ρανγε οφ φρεελανχε εξπερτσ φροµ αρουνδ τηε ωορλδ, ινχλυδινγ Ενγλανδ, τηε ΥΣΑ, Χηινα, Κορεα ανδ Ινδια, ηαϖε αλσο χοντριβυτεδ το τηε σιτε. Σο, ωηψ νοτ σεε ηοω Προγραµµερσ Ηεαϖεν χαν ηελπ ψου ωιτη ψουρ δεϖελοπµεντ ωορκ τοδαψ? 650.000 υνιθυε ϖισιτορσ α µοντη χαν∋τ βε ωρονγ! ηττπ://ωωω.προγραµµερσηεαϖεν.χοµ/ .ΝΕΤ νεωσλεττερ Τηε Προγραµµερ∋σ Ηεαϖεν .Νετ νεωσλεττερ, σεντ ουτ υπ το φουρ τιµεσ α µοντη, χονταινσ τηε λατεστ .Νετ νεωσ αλονγ ωιτη ινφορµατιον ον νεω .Νετ αρτιχλεσ ανδ ρεσουρχεσ ον Προγραµµερ∋σ Ηεαϖεν. Τηε .Νετ πλατφορµ ισ εϖολϖινγ φαστ, ανδ σιγνινγ υπ φορ ουρ νεωσλεττερ ισ α γρεατ ωαψ το βε κεπτ ιν τηε πιχτυρε. Ιν τηε ιµµεδιατε φυτυρε, εξπεχτ χοϖεραγε οφ Χ# 3.0 ανδ ΩΧΦ. Σιγν υπ τοδαψ φορ φρεε ατ ηττπ://ωωω.προγραµµερσηεαϖεν.χοµ/2/∆οτΝετ−Νεωσλεττερ Προγραµµερσ Ηεαϖεν: Χ# Σχηοολ 6 Αβουτ Φαραζ Ρασηεεδ Φαραζ Ρασηεεδ ισ χυρρεντλψ ωορκινγ τοωαρδσ ηισ ΜΣ (Χοµπυτερ Ενγινεερινγ) φροµ Κψυνγ Ηεε Υνιϖερσιτψ, Σουτη Κορεα, ανδ ωορκινγ ασ α ρεσεαρχη ασσισταντ ιν τηε Υβιθυιτουσ Χοµπυτινγ Γρουπ (ΥΧΓ) οφ Ρεαλτιµε & Μυλτιµεδια Λαβ (ωωω.οσλαβ.κηυ.αχ.κρ). Ηισ χυρρεντ ρεσεαρχη αρεα ισ Ινφορµατιον µαναγεµεντ ιν χοντεξτ αωαρε & υβιθυιτουσ χοµπυτινγ ενϖιρονµεντσ. Ηε χοµπλετεδ ηισ ΒΣ (Χοµπυτερ Σχιενχε) ατ τηε ∆επαρτµεντ οφ Χοµπυτερ Σχιενχε, Υνιϖερσιτψ οφ Καραχηι, Πακισταν. Ηε ηασ α στρονγ ιντερεστ ιν τηε οβϕεχτ οριεντεδ σοφτωαρε δεϖελοπµεντ προχεσσ, σπεχιφιχαλλψ υσινγ .Νετ ανδ ϑαϖα βασεδ τεχηνολογιεσ. Ηε ηασ δονε ϖαριουσ προϕεχτσ υσινγ Χ#, ςΒ.Νετ, ΑΣΠ.Νετ ον στανδαρδ ανδ χοµπαχτ εδιτιον οφ .Νετ, ωηιχη αλσο ινϖολϖε τεχηνολογιεσ λικε Α∆Ο.Νετ, ωεβ σερϖιχεσ, .Νετ ρεµοτινγ, ρεφλεχτιον ανδ στρονγ ναµεδ σηαρεδ ασσεµβλιεσ. Ηε χαν βε χονταχτεδ βψ εµαιλ ατ ειτηερ φραζρασηεεδ≅ηοτµαιλ.χοµ ορ φαραζ≅οσλαβ.κηυ.αχ.κρ . Χ# 3.0 Χ# 3.0 ισ τηε νεξτ ϖερσιον οφ τηε Χ# λανγυαγε, χυρρεντλψ ιν ΒΕΤΑ ανδ δυε φορ ρελεασε ιν 2007. Ωε ηαϖε χρεατεδ αν αρεα ον τηε Προγραµµερ∋σ Ηεαϖεν σιτε το προϖιδε χοϖεραγε οφ τηε εξχιτινγ νεω φεατυρεσ ιν Χ# 3.0. Τηισ ωιλλ ινχλυδε α σεριεσ οφ αρτιχλεσ εξπλαινινγ τηε νεω φεατυρεσ ανδ τηε χονχεπτσ βεηινδ τηεµ ιν τηε σαµε πλαιν Ενγλιση τηατ ψου ηαϖε φουνδ ιν τηισ βοοκ. Προγραµµερσ Ηεαϖεν: Χ# Σχηοολ 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 Προγραµµερσ Ηεαϖεν: Χ# Σχηοολ 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 Προγραµµερσ Ηεαϖεν: Χ# Σχηοολ 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 Προγραµµερσ Ηεαϖεν: Χ# Σχηοολ 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 [...]... System; namespace CSharpSchool { class ArithmeticOperators { // The program shows the use of arithmetic operators // + - * / % ++ -static void Main() { // 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 difference = num1 - num2; product 34 = num1... num2; Console.WriteLine("num1 = {0}, num2 = {1}", num1, num2); Console.WriteLine(); 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... τηε φολλοωινγ χοδε: using System; namespace MyHelloWorldApplication { class HelloWorld { static void Main(string[] args) { Console.WriteLine("Hello World"); } } } 22 Προγραµµερσ Ηεαϖεν: Χ# Σχηοολ Σαϖε τηισ ωιτη ανψ φιλε ναµε ωιτη τηε εξτενσιον ∀.χσ∀ Εξαµπλε: ∋ΜψΦιρστΑππλιχατιον.χσ∋ Το χοµπιλε τηισ φιλε, γο το χοµµανδ προµπτ ανδ ωριτε: csc MyFirstApplication.cs Τηισ ωιλλ χοµπιλε ψουρ προγραµ ανδ χρεατε... χοµµεντσ (λινεσ σταρτινγ ωιτη ///), χηανγε τηε ναµε οφ χλασσ φροµ Χλασσ1 το ΗελλοΩορλδ ανδ ωριτε Console.WriteLine("Hello World"); in place of //TODO: Add code το µακε τηε πιχτυρε λοοκ λικε using System; namespace MyHelloWorldApplication { class HelloWorld { [STAThread] static void Main(string[] args) { Console.WriteLine("Hello World"); } } } 24 Προγραµµερσ Ηεαϖεν: Χ# Σχηοολ Νοω το χοµπιλε ανδ εξεχυτε... τηειρ ναµε ανδ ωιλλ γρεετ υσινγ ηισ/ηερ ναµε, λικε ∋Ηελλο Φαραζ∋ ωηεν α υσερ ναµεδ ∋Φαραζ∋ ρυνσ ιτ Λετσ σεε τηε χοδε φιρστ: static void Main(string[] args) { Console.Write("Please enter your name: "); string name = Console.ReadLine(); Console.WriteLine ("Hello {0}, Good Luck in C# ", name); } Αυτηορ∋σ Νοτε: Ιν τηε αβοϖε χοδε, ωε ηαϖεν∋τ σηοων τηε χοµπλετε προγραµ βυτ ονλψ τηε Μαιν Μετηοδ το σαϖε σπαχε Ωε... ωιτη (0+1)τη, ι.ε., τηε 1στ ϖαριαβλε (∋ναµε∋) φολλοωινγ τηε στρινγ Σο ατ ρυν−τιµε, τηε ΧΛΡ ωιλλ ρεαδ ιτ ασ: Console.WriteLine ("Hello Faraz, Good Luck in C# "); ιφ τηε ϖαλυε οφ ∋ναµε∋ ισ Φαραζ ατ ρυν−τιµε Αλτερνατιϖελψ, ιτ χαν αλσο βε ωριττεν ασ: Console.WriteLine ("Hello " + name + ", Good Luck in C# "); ρεµοϖινγ τηε συβστιτυτιον παραµετερ Ηερε ωε χονχατενατε (αδδ) τηε στρινγσ τογετηερ το φορµ α µεσσαγε... true; float percentage = 87.88, average = 43.9; char = '7'; digit Ιν Χ# (λικε οτηερ µοδερν λανγυαγεσ), ψου µυστ δεχλαρε ϖαριαβλεσ βεφορε υσινγ τηεµ Αλσο, τηερε ισ τηε χονχεπτ οφ ∀∆εφινιτε Ασσιγνµεντ∀ ιν Χ# ωηιχη σαψσ ∀λοχαλ ϖαριαβλεσ (ϖαριαβλεσ δεφινεδ ιν α µετηοδ) µυστ βε ινιτιαλιζεδ βεφορε βεινγ υσεδ∀ Τηε φολλοωινγ προγραµ ωον∋τ χοµπιλε: static void Main() { int age; // age = 18; Console.WriteLine(age);... {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... οφ τηε Χονσολε χλασσ Ηερε ωε υσεδ τηε συβστιτυτιον παραµετερ {0} το στατε ωηερε ιν τηε λινε τηε δατα ιν τηε ϖαριαβλε ∋ναµε∋ σηουλδ βε ωριττεν ωηεν τηε ΩριτεΛινε() µετηοδ ισ χαλλεδ Console.WriteLine ("Hello {0}, Good Luck in C# ", name); Ωηεν τηε χοµπιλερ φινδσ α συβστιτυτιον παραµετερ, {ν}, ιτ ρεπλαχεσ ιτ ωιτη τηε (ν+1)τη ϖαριαβλε φολλοωινγ τηε στρινγ Τηε στρινγ ισ δελιµιτεδ ωιτη δουβλε θυοτατιον µαρκσ... τηε ενδ οφ τηε λινε: // This is my main method of program static void Main() { } Χ# αλσο συππορτσ τηε χοµµεντ βλοχκ Ιν τηισ χασε, τηε ωηολε βλοχκ ισ ιγνορεδ βψ τηε χοµπιλερ Τηε σταρτ οφ τηε βλοχκ ισ δεχλαρεδ βψ σλαση−αστερισκ (/∗) ανδ ενδσ ωιτη αστερισκ−σλαση µαρκ (∗/): static void Main() { /* These lines of text will be ignored by the compiler */ 27 Προγραµµερσ Ηεαϖεν: Χ# Σχηοολ } Χ# ιντροδυχεσ ανοτηερ