1. Andmetüübid (Data Types)
C# jaotab andmetüübid kahte peamisse kategooriasse: väärtustüübid ja viitetüübid.
- Väärtustüübid (Value types): Need salvestatakse mälus otse (pinus ehk stack). Kui loote väärtustüübiga muutuja, eraldatakse mälu kohe.
- Täisarvud:
int(32-bitine),long(64-bitine),short(16-bitine) jabyte(8-bitine). - Ujukomaarvud:
floatjadoubletavaliste arvutuste jaoks ningdecimalsuure täpsusega (nt finantsandmed) arvutuste jaoks. - Tõeväärtused:
bool, mille väärtus on kastruevõifalse. - Märgid:
char, mis esindab ühte Unicode’i märki. - Struktuurid ja loetelud:
struct(kasutaja deklareeritud väärtustüüp) jaenum(nimetatud konstandid).
- Täisarvud:
- Viitetüübid (Reference types): Need salvestatakse kuhjas (heap) ja muutuja ise hoiab vaid viidet (mäluaadressi) andmete asukohale.
- Sõned (string): Esindab muutumatut Unicode’i märkide jada.
- Klassid (class): Kasutaja loodud andmestruktuurid, mis koondavad andmeid ja käitumist.
- Massiivid (array): Viitetüüp, mis viitab mälualale, kus hoitakse ühte või mitut sama tüüpi elementi.
2. Muutujad (Variables)
Muutujad on identifikaatorid, mis on seotud väärtustega.
- Deklareerimine ja väärtustamine: Muutuja loomiseks tuleb määrata selle tüüp ja nimi. Väärtuse omistamine võib toimuda deklareerimise ajal või hiljem. Näiteks:
string aFriend = "Bill";. - Tüübi tuletamine (var): Alates versioonist C# 3.0 saab kasutada märksõna
var, mis laseb kompileerijal muutuja tüübi ise tuletada sellele antud väärtuse põhjal. - Konstandid (const ja readonly):
constmärksõnaga deklareeritud väärtused on muutumatud ja need tuleb määrata kohe.readonlyvälju saab algväärtustada ka konstruktoris. - Nimepanek: Muutujate nimed on tõstutundlikud (nt
FOOon erinev kuifoo) ning need ei tohi alata numbriga. Tavaliselt kasutatakse muutujate puhul camelCase kirjastiili.
3. Sisend ja väljund (Input/Output)
C# kasutab konsoolirakendustes andmete lugemiseks ja kirjutamiseks klassi Console.
- Väljund (Output):
Console.WriteLine()– Prindib tekstirea ekraanile ja liigub järgmisele reale.- Sõne interpoleerimine: Kasutades sümbolit
$jutumärkide ees (nt$"{variable}"), saab muutujaid mugavalt teksti sisse paigutada.
- Sisend (Input):
Console.ReadLine()– Loeb kasutaja poolt konsooli sisestatud teksti.- Kuna
ReadLinetagastab alati sõne, tuleb numbriliste väärtuste saamiseks kasutada teisendamist, näiteksConvert.ToInt32().
4. Programmi struktuur
Igal C# programmil peab olema sisenemispunkt (entry point), milleks on tavaliselt meetod nimega Main. See asub klassi sees ja on märgitud kui static. Uuemates versioonides on võimalik kasutada ka top-level statements lähenemist, mis eemaldab vajaduse klassi ja Main meetodi otsese kirjutamise järele, tehes koodi vähem mahukaks.
Koodi näited:
public static void Pinginaabrid()
{
Console.WriteLine("Sisesta esimene nimi ");
string nimi1 = Console.ReadLine();
Console.WriteLine("Sisesta teine nimi ");
string nimi2 = Console.ReadLine();
if (nimi1 != "" && nimi2 != "")
{
Console.WriteLine($"{nimi1} ja {nimi2} on täna pinginaabrid.");
}
else
{
Console.WriteLine("Palun sisesta kaks nime");
}

public static void RemondiKalk()
{
Console.Write("Sisesta toa esimese seina pikkus (m): ");
double a = double.Parse(Console.ReadLine());
Console.Write("Sisesta toa teise seina pikkus (m): ");
double b = double.Parse(Console.ReadLine());
double pindala = a * b;
Console.WriteLine("Põranda pindala on " + pindala + " m2.");
Console.Write("Kas soovid remonti teha? (jah/ei): ");
string soov = Console.ReadLine();
if (soov == "jah")
{
Console.Write("Sisesta ruutmeetri hind (€/m2): ");
double ruutmeetriHind = double.Parse(Console.ReadLine());
double hind = pindala * ruutmeetriHind;
Console.WriteLine("Põranda vahetamise hind on " + hind + " euro.");
}
else
{
Console.WriteLine("Remonti ei arvutata.");
}

