Kihagyás

Adattípusok

A C# a Pythonnal szemben statikusan típusos: a fordító ellenőrzi, hogy egy változóba milyen érték kerülhet. A var kulcsszóval a fordító következtet a típusra, de a változó ekkor is rögzített típusú lesz.

Beépített típusok

Típus Méret Példa Python-megfelelő
bool 1 bájt true bool (True)
byte 1 bájt 255 int
short 2 bájt 1200 int
int 4 bájt 42 int
long 8 bájt 3000000000L int
float 4 bájt 3.5f float
double 8 bájt 3.5 float
decimal 16 bájt 199.99m decimal.Decimal
char 2 bájt 'A' egykarakteres str

A byte előjel nélküli, 0–255 közötti egész szám. Az int −2 147 483 648 és 2 147 483 647 között tárol értéket; a Python int mérete ezzel szemben szükség szerint növekedhet. A float és double közelítő ábrázolású lebegőpontos típus, pénzhez többnyire decimal való.

int darab = 5;
bool sikeres = true;
float atlag = 4.5f;
double pi = 3.14159;
decimal ar = 199.99m;
var pont = 10; // a fordító int típusra következtet
darab = 5
sikeres = True
atlag = 4.5
pi = 3.14159
from decimal import Decimal
ar = Decimal("199.99")
pont = 10

String (szöveges) típus

A C# szövegtípusa a kisbetűs string (a System.String rövid neve). A karakterhez egyszeres, a szöveghez dupla idézőjelet használunk.

string uzenet = "Szia!";
char kezdoBetu = 'S';
Console.WriteLine(uzenet.Length); // 5

A string nem módosítható helyben: a Replace és hasonló metódusok új sztringet adnak vissza.

Átalakítás és osztás

int.Parse érvényes egész szöveget alakít számmá, de hibás bemenetre kivételt dob. Felhasználói adatnál inkább int.TryParse-t használjunk. Két int osztása egész osztás; törtrészhez legalább az egyik operandus legyen lebegőpontos.

int egesz = 5 / 2;       // 2
double pontos = 5.0 / 2; // 2.5
bool sikerult = int.TryParse("42", out int szam);
Console.WriteLine($"{sikerult}: {szam}");

Pythonban a / mindig valódi osztás, a // egész hányadost ad.

Feladat

Hozz létre egy short, egy double és egy string változót! Írd ki interpolált sztringben az értékeiket, majd próbáld meg a szöveget számmá alakítani TryParse segítségével.