Yuqorida, barcha bazaviy berilganlar sanab o'tishda, ularning har biri uchun tizim turi ko'rsatilgan. Chunki o'rnatilgan turning nomi asosan tizim turining qisqartmasidir. Masalan, quyidagi o'zgaruvchilar tur bo’yicha ekvivalentdir:
int a = 4;
System.Int32 b = 4;
Oshkormas tur e’lon qilish
Oldinroq o'zgaruvchilar turini aniq ko'rsatdik, masalan int x;. Va kompilyator ishga tushganda x butun sonni saqlashini bilar edi.
Shu bilan birga, oshkormas yozish modelidan ham foydalanish mumkin:
var hello = "Hell to World";
var c = 20;
Console.WriteLine(c.GetType().ToString());
Console.WriteLine(hello.GetType().ToString());
Oshkormas tur e’lon qilish
Oshqormas tur e’lon qilish uchun berilganlar turi nomi o'rniga var kalit so'zi ishlatiladi. Keyin, kompilyatsiya paytida, kompilyatorning o'zi berilgan qiymatga qarab ma'lumotlar turini aniqlaydi. Yuqoridagi misolda Console.WriteLine(c.GetType().ToString()); ifodasi ishlatilgan, bu bizga c o'zgaruvchining taxmin qilingan turini aniqlash imkonini beradi. Kelishuv bo’yicha, barcha butun turdagi qiymatlar int turidagi qiymatlar sifatida qaralganligi sababli, natijada c o'zgaruvchisi int yoki System.Int32 turiga ega bo’ladi.
Bu o'zgaruvchilar oddiy o'zgaruvchilarga o'xshaydi, lekin ular ba'zi cheklovlarga ega. Birinchidan, turi oshkor ko’rsatilmagan o'zgaruvchini e'lon qilib bo’maydi, shuning uchun initsializatsiya ham qilinmaydi:
Oshkormas tur e’lon qilish
// bu kod ishlaydi
int a;
a = 20;
// bu kod ishlamaydi
var c;
c= 20;
Ikkinchidan, turi oshkor ko’rsatilmagan o'zgaruvchining qiymati sifatida null qiymatini aniqlay olmaymiz:
// bu kod ishlamaydi
var c=null;
Qiymat null bo'lganligi uchun, kompilyator ma'lumot turini aniqlay olmaydi.