کلمه ی کلیدی var که در #C نسخه ی ۳ معرفی شد، امکان تعریف متغیرها به طور ضمنی رو میده.
اون قدیم ندیما که VB 6.0 کار میکردم، نوع Variant در VB.6.0 وجود داشت که یه چیزی در مایه های object در دات نت بود.
var هم در #C نسخه ی ۳ از نظر مفهومی مثل همونه اما از نظر تکنیکی روشی برای بیان تشخیص خودکار نوع داده توسط کامپایلر هست.
برای اینکه ارادتی هم به دوستان VB.NET کار نشون داده باشم جا داره که عرض کنم در VB.NET هم برای تعیین نوع ضمنی متغیر فقط نیاز به Dim هست.
همون طور که دوستان LINQ کار می دونن، نوع برگشتی یک دستور LINQ، اینترفیسی با نام IEnumerable هست که نوع Generic داره.
var، کار برنامه نویسان رو راحت کرده و معمولاً مقدار برگشتی دستور LINQ رو برابر با یک متغیر ضمنی قرار میدن:
int[] nums = {6, 1, 4, 3, 25, 11, 2, 12, 8, 9};
var result =
from num in nums
where num > 5
select num;
البته var قابلیت خوبیه اما استفاده ی مفرط از اون باعث کاهش خوانایی برنامه میشه. بهتر اینه که اگر نوع برگشتی یک دستور LINQ از پیش مشخصه، نوع برگشتی رو صریحاً مشخص کرد.
در مثال بالا، می دونیم که مقدار برگشتی، از نوع int هست. پس عبارت قبل رو به شکل ذیل اصلاح می کنیم:
int[] nums = {6, 1, 4, 3, 25, 11, 2, 12, 8, 9};
IEnumerable<int> result =
from num in nums
where num > 5
select num;