"Pisanje programa u jeziku C#
Nakon što smo se upoznali sa tim šta je u stvari jezik C# i kako se uklapa u .NET okruženje, došao je trenutak da započnemo sa pisanjem koda. U tom poslu koristićemo Visual Studio .NET (VS), pa treba da naučimo osnovne stvari o torn razvojnom okruženju. VS je ogroman i komplikovan proizvod, tako da u prvo vreme korisniku može delovati zastrašujuće, ali uz njegovu pomoć pravljenje jednostavnih aplikacija može biti iznenađujuće prosto. Čim počnemo sa korišćenjem VS-a uvidećete da nije potrebno mnogo znati o njemu da bismo se poigrali sa C# kodom. Kasnije ćemo videti neke mnogo komplikovanije operacije koje je moguće izvesti u VS-u, ali za sada su dovoljna osnovna znanja. Pošto zavirimo u VS, sastavićemo dve proste aplikacije. Za sada se nećemo mnogo opterećivati kodom, samo ćemo se upoznati sa tim koje su procedure potrebne da bi se aplikacija napravila i da bi funkcionisala kako treba, mada će sve to uskoro postati sporedno. Prva aplikacija koju ćemo napraviti biće jednostavna konzolna aplikacija. Konzolne aplikacije ne koriste grafičko okruženje Windowsa, tako da ne moramo da brinemo o dugmadima, menijima, interakciji sa pokazivačem miša i tako dalje. Umesto toga, pokrenućemo aplikaciju iz komandne linije i komunicirati sa njom na mnogo prostiji način. Druga aplikacija će biti bazirana na Windows formularima. Njen izgled, kao i rad sa njom, biće vrlo prepoznatljiv onima koji su koristili Windows i njeno kreiranje ne zahteva ništa vise rada nego prethodna. Ipak, sintaksa njenog koda je mnogo komplikovanija, mada često nećemo morati da vodimo računa o detaljima. Dodatna fleksibilnost Windows aplikacija nije neophodna da bi se naučio C# jezik, dok jednostavnost konzolnih aplikacija omogućuje da se skoncentrišemo na učenje sintakse, a da za to vreme ne brinemo o tome kako aplikacija izgleda niti kakav je osećaj raditi sa njom.
Razvojno okruženje Visual Studio .NET
Kada prvi put učitate VS, odmah se pojavi nekoliko prozora, od kojih je većina prazna, zajedno sa nizom elemenata menija i ikona sa paletama alatki. Ukoliko prvi put pokrećete VS biće vam predstavljena lista sa vrednostima namenjena za korisnike sa iskustvom u radu na prethodnim izdanjima ovog razvojnog okruženja. Automatski odabrani element! su sasvim u redu, za sada ih prihvatite jer tu nema ničega što se kasnije ne može promeniti. Izgled VS okruženja je u potpunosti prilagodljiv, ali su nam sasvim dovoljne već postavljene vrednosti. One su sređene na sledeći način:
1
Glavni prozor, koji prikazuje uvodnu „početnu stranu" kada se VS pokrene, jeste onaj u kome se prikazuje ceo naš kod. Ovaj prozor je podeljen na kartice tako da možemo lako skakati sa jedne na drugu datoteku tako što ćemo pritisnuti mišem njihovo ime. Ovaj prozor ima i druge funkcije: može prikazati grafički korisnički interfejs koji dizajniramo za naš projekat, čiste tekstualne datoteke, HTML, kao i različite alate ugrađene u VS. Opisaćemo svaki, kako na njega naiđemo tokom rada. Iznad glavnog prozora nalaze se palete sa alatkama, kao i VS meni. Ovde možete naći nekoliko različitih paleta sa alatkama rangiranih po funkcionalnosti - od alatki za snimanje i učitavanje datoteka, preko izgradnje i pokretanja projekta, do kontrola za otklanjanje grešaka. O svima njima ćemo pričati kada nam budu zatrebali. Slede kratki opisi glavnih karakteristika VS-a, koje ćete najčešće koristiti:
Server Explorer i Toolbox paleta sa alatkama izbacuju sopstvene menije kada se preko njih prede mišem, i otvaraju nam nove dodatne mogućnosti, kao što su pristup i podešavanje karakteristika i servisa samog servera, i pristup korisničkom interfejsu za izradu elemenata Windows aplikacija. Solution Explorer prozor prikazuje informacije o trenutno učitanim rešenjima. Rešenje je po terminologiji VS-a jedan ili vise projekata zajedno sa njihovom konfiguracijom. Ovde možemo videti različiti pogled na projekte unutar rešenja, kao što su datoteke iz kojih se sastoje i njihov sadržaj. Properties prozor omogućuje detaljniji pogled na sadržinu projekta i dozvoljava nam da izvedemo dodatno konfigurisanje pojedinih elemenata. Na primer, taj prozor možemo koristiti da promenimo izgled dugmeta unutar Windows formulara. Task List and Output prozor prikazuje informacije prilikom kompajliranja projekta zajedno sa zadacima koji treba da se izvrše (slično listi zadataka u Microsoft Outlooku). Ovi zadaci se mogu uneti ručno, a mogu biti i automatski generisani od VS-a.
2
Počnimo sa pravljenjem prvog primera našeg projekta, koji će u sebe uključiti mnogo VS elemenata koje smo gore naveli.
Konzolna aplikacija
U ovom predavanju koristiti napravimo jednu jednostavnu. ćemo konzolne aplikacije, posebno na početku, stoga
Vežba br. 1.
Napravite novi projekat konzolne aplikacije birajući File | New | Project... iz menija:
Izaberite Visual C# Projects direktorijum unutar prozora Project Types:, i tip projekta Console Application u okviru prozora Templates: (za ovo ćete morati malo da pomerite prozor na dole). U okviru za tekst Location: promenite putanju u C:\Temp\SoftIng\LecturesCode\Vezba1 (ovaj će direktorijum biti automatski napravljen ukoliko već ne postoji), i ostavite podrazumevani tekst u okviru za tekst Name: Pozdrav Svete.
3
Pritisnite mišem na dugme OK. Kada se projekat inicijalizuje dodajte sledeće redove u datoteku koja se bude pojavila u glavnom prozora:
Izaberite Debug | Start Without Debbuging iz menija. Posle nekoliko trenutaka trebalo bi da vidite sledeće:
Pritisnite bilo koji taster da izađete iz aplikacije. Takođe samu konzolnu aplikaciju možemo pokrenuti i na drugi način: Odaberite Start | Programs | Microsoft Visual Studio .NET 2003 | Visual Studio .NET Tools | Visual Studio .NET Command Prompt. Pojaviće se komandni prozor i biće definisane sve promenljive okruženja potrebne prevodiocima i alatkama Visual Studija. Ako se pokrene obično komandno okruženje, bez zadavanja tih promenljivih, .NET alatke neće raditi.
4
Posle otvaranja komandnog prozora .NET-a uđite u folder u kome ste sačuvali ovu konzolnu aplikaciju. Unesite u komandnom prozoru sledeću komandu, koja prevodi kod konzolne aplikacije: csc Class.cs <Enter> Naravno programiranje pod celim Visual Studio .NET je tkz. Case Sensity, osetljiv velika i mala slova. Tako da morate da obratite pažnju pri kucanju koda. Ovde to nije slučaj, ali nije naodmet da se navikavate na velika i mala slova. Prvo ćete dobiti obaveštenje o verziji prevodioca i izvršnog okruženja, a zatim i o autorskim pravima. Pokrenute program i bićete pozdravljeni na sledeći način: C:\> Class1 Pozdrav svete na jeziku C# ! C:\> Funkcija Console.WriteLine() dodaje tekstu indikator novog reda (engl. Newline character). U windowsu je to kombinacija znaka za početak reda i znaka za prelazak u novi red. Da biste u nekoliko iskaza pisali u istom redu, koristite funkciju Write(). Ona zahteva da sami dodate indikator novog reda. Sada u prethodnom programu zamenite iskaz WriteLine() sledećim iskazima: Cons ol e. Writ e (" Zdr av o sv e t e " ) ; Console.Write ( " n a jeziku C # ! \ r \ n " ) ; Obrnuta kosa crta (\) ispred znaka je signal prevodiocu da je u pitanju izlazna sekvenca (engl. escape sequence). Iz sledeće tabele vidi se da C# koristi iste izlazne znake kao i C++. Ako iza obrnute kose crte stavite neki dragi znak, dobićete od prevodioca poruku da nije prepoznao izlazni znak. Izlazna sekvenca \a \b V \n V \t \v \" \\ Značenje
Zvono. Zvučnik proizvodi kratak signal. Brisanje ulevo (engl. backspace). Pomera za jedno mesto ulevo. Kraj strane. Pomera na početak sledeće strane prilikom štampanja. Na ekranu daje kontrolni znak. Novi red. Pomera u sledeći red. Na ekranu se kursor pomera na početak sledećeg reda. Znak za povratak na početak reda. Pomera na početak tekućeg reda. Tekst koji se ispisuje na ekranu posle ovog znaka, pojavljivaće se preko tekućeg sadržaja reda. Horizontalan tabulator. Daje znak tabulatora. Vertikalan tabulator. Pomera kursor nadole za zadati broj redova. Na ekranu daje kontrolni znak. Navodnici. Bez obrnute kose crte se koristi kao graničnik za znakovne nizove. U kombinaciji sa obrnutom kosom crtom, prevodilac ga tumači kao običan znak. Dvostruka obrnuta kosa crta. Ispisuje obrnutu kosu crtu.
5
6
Kako to radi
Za sada nećemo ispitivati kod koji smo koristili u ovom projektu; vise demo brinuti o tome kako koristiti VS da bi se kod osposobio za izvršavanje. Kao što ste videli, VS radi gomilu stvari za nas, što čini jednostavnim proces kompajliranja i izvršenja koda. Postoji vise načina za izvođenje čak i ovako jednostavnih koraka. Na primer, pravljenje novog projekta može se izvesti preko stavke menija File| New | Project... kao što smo i radili, ili pritiskanjem kombinacije tastera Ctrl+Shift+N, ili pritiskom mišem na odgovarajuću ikonu u paleti sa alatkama. Slično tome vaš kod može biti kompajliran i izvršen na vise načina. Za metod koji smo koristili izborom stavke menija Debug | Start Without Debbuging, imamo takođe prečicu (Ctrl+F5), a isto tako i ikonu u paleti sa alatkama. Kod možemo pokrenuti korišćenjem stavke menija Debug | Start (takođe pritiskajući F5 ili odabirajući odgovarajuću ikonu; ili možemo kompajlirati kod bez njegovog pokretanja (sa uključenom ili isključenom proverom grešaka) koristeći Build | Build, Ctrl+Shift+B, ili odabirajući drugu ikonu. Kada je kod kompajliran možemo ga pokrenuti startovanjem dobijene .exe datoteke iz Windows Explorera, ili iz komandne linije. Da bismo to izveli, moramo otvoriti komandnu liniju, preći u direktorijum C:\Temp\SoftIng\LecturesCode\Vezba1\bin\Debug\, uneti Pozdrav Svete i pritisnuti taster Enter. U narednim primerima samo ćemo reći: „Napravite novi konzolni projekat", ili: „Pokrenite program", a vi izaberite način koji vam odgovara da biste to uradili. Ukoliko ne bude drugačije naglašeno, kod treba pokretati sa uključenim otklanjanjem grešaka. Treba naglasiti da se poruka Press any key to continue koju ste videli u okviru konzolnog programa, pojavljuje samo ukoliko nije uključeno ispravljanje grešaka. Ako pokrenemo projekat u modu za otklanjanje grešaka prozor konzolnog programa će nestati. U principu to je dobro, ali ne i za prethodni primer. Ukoliko bismo tako uradili, ne bismo videli rezultate našeg rada. Sada smo napravili projekat preko koga možemo detaljno pogledati neke delove ovog projektnog okruženja. Prvi prozor na koji treba obratiti pažnju je Solution Explorer | Class View u gornjem desnom uglu ekrana koji je dole prikazan u oba režima rada (režim možete menjati pritiskajući dugmad u dnu prozora).
Ovaj pogled preko Solution Explorera prikazuje datoteke od kojih se sastoji projekat Pozdrav svete. Datoteka kojoj smo dodali kod je Class1.cs prikazana zajedno sa još jednom kod datotekom, AssemblyInfo.cs. (Sve datoteke sa C# kodom imaju nastavak cs). Ova druga datoteka sa kodom za sada nije naša briga, ona sadrži dodatne informacije o našem projektu koje nas se još uvek ne tiču.
7
Unutar ovog prozora možemo menjati sadržaj glavnog prozora, koji će se kod unutar njega prikazivati, i to tako što ćemo otvoriti datoteku .cs koja nam je potrebna ili pritisnuti na nju desnim dugmetom miša i odabrati opciju View Code. To možete uraditi i na drugi način, jednostavnim pritiskom mišem na dugme iz palete sa alatkama u gornjem delu prozora. U okviru ovog prozora možemo i manipulisati sa datotekama, brisati ih, menjati im ime i slično. Ovde se takođe mogu nalaziti i drugi tipovi datoteka, kao što su resursne datoteke projekta (resursi su datoteke koje nisu uvek C# datoteke - to mogu biti i slike ili zvučne datoteke). Naravno, i sa njima možemo manipulisati preko istog interfejsa. Lista References sadrži spisak .NET biblioteka koje koristimo u našem projektu. I to je nešto čime ćemo se pozabaviti kasnije, zato što su standardne reference za naš početak dovoljne. Drugi pogled istog prozora, Class View, predstavlja način da pogledamo naš projekat kroz strukturu koda koji smo napravili. Tome ćemo se vratiti kasnije, a za sada odaberimo pogled Solution Explorer. Primetićete da se sadržaj donjeg prozora menja u odnosu na to koju ikonu ili datoteku odaberete u gornjim prozorima. To je još jedan prozor koji ima vise pogleda, ali najvažniji od njih je pogled Properties:
Ovaj prozor pokazuje dodatne informacije o tome šta smo odabrali u prozora iznad njega. Na primer, kada izaberemo Class1.cs iz našeg projekta videćemo ono što je prikazano na slici. Ovaj prozor može da nam prikaže i informacije o drugim elementima koje odaberemo, kao što su komponente korisničkog interfejsa, što ćemo videti u drugom delu ovog predavanja koji se bavi Windows aplikacijama. Često, ukoliko unesemo izmene u prozor Properties, to će direktno uticati na kod tako što će dodati nove redove koda ili menjati sadržaj naših datoteka. U nekim projektima provešćemo isto toliko vremena menjajući stvari u ovom prozora, koliko ćemo provesti u pisanju samog koda. Sada pogledajmo prozor Output. Kada ste pokretali program verovatno ste primetili da se u ovom prozora pojavio neki tekst pre konzolnog prozora naše aplikacije. Na našem računara pojavilo se, na primer:
8
Kao što možete pretpostaviti, to je izveštaj o statusu datoteka koje se kompajliraju. Ovde ćemo dobiti i izveštaj o greškama koje se mogu dogoditi tokom kompajliranja. Na primer, probajte da obrišete tačku-zarez iz reda koji smo dodali unoseći kod u prethodnom koraku, i ponovo kompajlirajte. Ovaj put videćete sledeće:
Ovaj put projekat neće raditi. U sledećem predavanju kada budemo prešli na sintaksu C#-a, videćemo da se tačka-zarez očekuje kroz ceo kod - na kraju skoro svakog reda našeg koda. Pošto sada moramo nešto uraditi da bismo naterali kod da radi, VS automatski dodaje zadatak u listu zadataka koja deli prostor sa prozorom Output:
9
Ovaj prozor će nam pomoći da utvrdimo gde se u našem kodu nalaze greške i vodiće računa o tome šta sve treba da uradimo da bi kompajlirali naš kod. Ako dva puta pritisnemo mišem na grešku prikazanu u ovom prozoru, kursor će se postaviti tačno na mestu gde je greška unutar koda (otvoriće se datoteka koda koja sadrži grešku ukoliko već nije otvorena), tako da problem možemo brzo rešiti. Takođe ćemo videti male crvene talasaste linije na mestu gde leži naša greška tako da kod nije teško pretražiti. Zapazite kako je lokacija greške navedena kao broj reda. VS program za uređivanje teksta standardno ne prikazuje brojeve redova, a to je nešto što bi bilo od koristi da vidimo. Da bismo to postigli, trebalo bi potvrditi određena polja za potvrdu unutar dijaloga Options do koga se dolazi izborom stavke menija Tools | Options.... Ime polja za potvrdu je Line Numbers i nalazi se u kategoriji Text Editor | C# | General, kao što je prikazano na sledećoj slici:
10
..."
|
You need to upgrade your Flash Player , or try to enable javascript in order see this document properly.
|
|