Když si třeba vezmeme proměnné:
vyhrazené místo v paměti počítače, o určitém typu, kam si je možno uložit data nějaké hodnoty. Typ určuje velikost proměnné, a i např. to, zda může/nemůže dosahovat záporných hodnot. Když vezmeme celočíselné proměnné - byte, int, long, - (prefix u "přehoupne" veškerý 'prostor', který by byl použit pro záporné hodnoty, do kladného 'prostoru', a tak můžeme hodnoty s prefixem u použít k dvojnásobně většímu vyjádření kladných hodnot, než u klasického int).
Typ proměnné float, double (pro desetinná čísla), decimal pro velice přesná desetinná čísla, používané zejména v oblasti finanční matematiky.
Dále máme string - přesněji řečeno jde o pole znaků - pro znaky (text), char pro jeden znak, bool pro logické hodnoty true/false.
Pro proměnnou chypu char platí, že může být implicitně převedena na následující typy: celočíselné ushort, int, uint, long a ulong, všechny s desetinou čárkou: float, double, a decimal. Explicitní převod je možný na sbyte, byte, a short
Implicitní převod jiných typů na typ char není možný. Explicitní převod celých čísel (integral) nebo desetiných čísel na char ovšem možný je.
Kód:
int cislo = znak; // implicitní převod char na int
byte b = (byte)znak; // explicitní převod char na byte
Proměnné typu string jsou neměnné - po jejich deklaraci a definici je již nelze změnit. Všechny metody a proměnné, která se tváří, jako by upravovaly proměnnou typu string, ve skutečnosti vytvářejí a vrací nový string.
Dynamický typový systém nevyžaduje explicitní určení typu proměnné, určený typu proměnné probíhá za běhu programu. Což ovšem může vést k situaci, kdy typ proměnné není vhodný k operaci, která s ním má být provedena - např. umocňování řetězce znaků. Chyby tohoto druhu se špatně odhalují.
Statický typový systém naproti tomu striktně vyžaduje explicitní určení typu proměnné. Kompilátor sám zkontroluje, zda je typ proměnné shodný s deklarovaným typem, a v případě neshody vyhodí chybu.
Jednou deklarový typ proměnné už nelze měnit. Nelze např. do proměnné typu int vkládat datový typ string.
C# je staticky typovaný jazyk. Obrovskou výhodou je, že nám kompilátor před kompilací zkontroluje, zda zadaný datový typ proměnné sedí s hodnotou, která ji byla přiřazena v deklaraci.
Když odbočíme, s touto problematikou souvisí i tzv. "Parsování".
Zjednoduše řečeno, převedeme číslo zadané v textové formě na "skutečné" číslo.
Jako např.:
¨
Kód:
string s = Console.ReadLine();
int c = int.Parse(s);
Console.WriteLine("Naparsované číslo je: {0}", s")
-------------------------------
Takle by to šlo?

PS: "Ano Wikan a JanFiala ví a ví toho dost. Ty nevíš nic."... ano, proto se jich taky ptám.
