Kurs: Core Windows Forms Technologies
Modul: Uvod u C#
Autor: Marko Stojićević
Naziv jedinice: Osnove C# programa
Materijali vezani uz ovu lekciju:
-
Test osnove c# programa -
Osnove C# programa (PDF dokument)
Ispisane linije koda predstavljaju strukturu C# aplikacije.
using System;
class HelloWorld
{
public static void Main()
{
System.Console.WriteLine("Hello, World");
}
}
Ključna reč using referiše .NET Frejmvork( Framework) biblioteku klasa. Izvršavanje koda počinje od Main metode. Klase u .NET frejmvorku grupisane su u tzv. namespace-ove ili prostore imena. Prostor imena System obezbeđuje pristup resursima sistema u kome se aplikacija izvršava.
Formatiranje koda u C#
Svaka C# aplikacija ima Main metodu definisanu u jednoj od svojih klasa. Main metoda je statička metoda što znači da ne pripada objektima klase nego samoj klasi. Klasa se ne mora instancirati - da bi se pozvala Main metoda, drugim rečima svi objekti(primerci,instance) klase dele istu Main metodu. Main metoda je javna.
Kod pisan u C#-u je osetljiv na mala i velika slova. Ukoliko je potrebno pisati komentare npr. kao podsetnik programeru šta određeni segment koda radi ili čemu služe pojedine promenljive, onda se koristi znak // ukoliko se želi komentar u jednoj liniji. Komentar koji treba da se proteže na više linija počinje sa kombinacijom znakova /* a završava se sa kombinacijom */. Kompajler ignoriše komentar.
Metoda WriteLine
Ovo je metoda klase Console koja se nalazi u prostoru imena System. Koristi se za prikazivanje jedne linije teksta na standardnom izlazu.Ulazni parametar metode je string tj. tekst napisan pod znacima navoda. Rezultat izvršavanja metode je prikazivanje teksta na ekranu i prelazak kursora u novi red. Treba napomenuti da se klasa Console koristi samo kod tzv. konzolnih aplikacija kod kojih se rezultat izvršavanja aplikacije prikazuje u konzoli tj. DOS promptu Windows operativnog sistema. Pored konzolnih aplikacija primenom okruženja Microsoft Visual Studio.NET moguće je kreirati i druge tipove aplikacija kao što su Windows aplikacije, ASP.NET web aplikace ASP.NET web servisi itd.
Ugrađeni tipovi podataka
Tipovi podataka se koriste za definisanje promenljivih.Promenljive mogu čuvati različite tipove podataka. Kada se promenljiva deklariše treba imati na umu koju vrstu podataka će ona čuvati. Programski jezik C# i .NET frejmvork definišu tzv. sistemske ili ugrađene tipove podataka. Često se za sistemske tipove podataka koristi i naziv "predefinisani". Naravno moguće je definisati i sopstvene tipove podataka.
Pregled ugrađenih tipova podataka
Na slici su prikazani neki od sistemskih tipova podataka. Treba uočiti da tip int zauzima memorijski prostor og 4 bajta, tip long zauzima prostor od 8 bajtova, da je moguće koristiti neoznačene brojeve što se označava slovom u ispred imena osnovnog tipa. Tip decimal se koristi za predstavljanje decimalnih brojeva sa fiksnom tačkom. Tip string se koristi za čuvanje stringova tj. niza karaktera. Posebnu pažnju treba obratiti na tip object, to je osnovni tip podataka u C# i iz njega su izvedeni svi ostali tipovi.
Slika 1: Sistemskih tipova podataka
Deklarisanje i inicijalizacija promenljivih
U nastavku je prikazano deklarisanje dve promenljive, jedna je celobrojna tj. tipa int pod nazivom brojStudenata, a druga je string promenljiva pod nazivom zanimanje.
int brojStudenata;
string zanimanje;
Ovako deklarisane promenljive je moguće kasnije inicijalizovati tj. dodeliti im vrednosti. Moguće je istovremeno izvršiti deklaraciju i inicijalizaciju promenljive kao što je to urađeno sa promenljivom zanimanje.
string zanimanje = "student";
Uobičajeno je da nazivi promenljivih u C# počinju malim slovom. Ukoliko se naziv promenljive sastoji od više reči tada svaka sledeća reč počinje velikim slovom. Ne preporučuje se korišćenje Mađarske notacije (korišćenje donje crte) karakteristično za programski jezik C++.
Vrednosni tipovi i referentni tipovi
Vrednosni tipovi podataka direktno sadrže podatke. Ovi tipovi podataka se čuvaju na stack-u. Vrednosti promenljive se direktno pristupa preko imena promenljive. Moraju se inicijalizovati pre korišćenja i ne mogu imati vrednost null. Referentni tipovi podataka se čuvaju u dinamičkoj zoni memorije na heap-u. Oni sadrže referencu na podatak. Objekti su referentni tipovi. Mogu da imaju vrednost null čime se označava da refererenca ne ukazuje na objekat.
Primeri deklaracije i inicijalizacije promenljivih
Ukoliko se drugačije ne naznači C# kompajler svaki broj sa decimalnom tačkom tretira kao tip double. Zbog toga se koriste literali kojima se označava da se radi o nekom drugom decimalnom tipu podataka i to F za float, M za decimal, L za long. Primer:
float f = 12.3F;
ukoliko bi se izostavila oznaka F kompajler bi generisao grešku. U nastavku su dati i primeri rada sa promenljivama tipa string.
string s = "Hello World" ; // Hello World
string s = "\"Hello\""; // "Hello"
string s = "Hello\nWorld"; // dodaje se nova linija
string s = @"Hello\n"; // Hello \n
Pošto je string niz karaktera ograničen znacima navoda, ukoliko se želi da se unutar stringa prikaže znak ", onda se ispred njega mora staviti obrnuta kosa crta tj. \". Slična je situacija sa escape karekterima. Ukoliko se štampa string koji u sebi ima oznaku \n tada će deo stringa ispred ovog znaka biti odštampan u jednom redu a deo stringa iza ovog znaka biće odštampan u sledećem redu. Ukiliko se želi da C# kompajler sve znake unutar stringa tretira kao tekst, a ne kao upravljačke komande ili komande za formatiranje tada se ispred oznake stringa stavlja verbatim znak @.
Konstante
Služe za čuvanje vrednosti koja ne sme biti promenjena tokom izvršavanja programa. Deklarišu se korišćenjem službene reči const ispred tipa promenljive. Konstante se moraju inicijalizovati kada se deklarišu, npr.
const int earthRadius = 6378;//km