معمولا سعی میکنم از نوع صریح استفاده کنم .
البته در 2 حالت از var استفاده میکنم :
1- جایی که نوع برگشتی یک Anonymous type یا یک Delegate خاص باشه
var result = await query.select( p => new { Id = p.Id , Title = p.Xname } ).ToListAsync();
2- در جایی که سمت راست عبارت کاملا واضح باشه و بخوام کد کوتاهتر و خواناتر باشه
var companys = new List<Company>();
البته طبق عادت معمولا تمامی کدهایی که با linq و لامبدا مینویسم رو داخل متغیری که از نوع var تعریف شده میگذارم .
در نهایت خود Var یک syntacic suger هست و در زمان کامپایل ، کامپایلر اونها رو به انواع صریح تبدیل میکنه .