سلام.
var خودش تشخیص میده نوع داده ما چی باشه int، string و ... اما منطقی نیست وقتی که نوع داده ای رو میدونیم از نوع var استفاده کنیم سرعت پایین تری خواهیم داشت.
این کد
var firstName = "Hassan";
با این کد
string firstName = "Hassan";
از نظر تخصیص نوع داده ای فرقی نمیکن.
تو این کد دو متغیر رو از نظر نوع داده ای مقایسه کردم میتونید امتحان کنید و نتیجه رو مشاهده کنید:
var firstName = "Hassan";
string lastName = "Ramezani";
if (firstName.GetType() == lastName.GetType())
{
MessageBox.Show("yes");
}
به این لینک هم سر بزنید اطلاعات مفیدی داره: https://msdn.microsoft.com/en-us/library/bb383973.aspx
و این لینک http://stackoverflow.com/questions/4307467/what-does-var-mean-in-c