یا بهتر بود اسمه این تایپک رو میزاشتم Var چی هه؟
خوب حالا واقعا چی هه؟!
تعریفش میشه این عکسه پایین. کلا به جای هر تایپی میتونیم var بزاریم , و هر تایپی رو هم داشتیم میتونیم بریزیم توی var ، حالا بیایم یه کم بررسیش کنیم.

خوب میرسیم به اینجا که Var که خیلی خوبه بیایم برای راحتیه کار همه جا ازش استفاده کنیم و خلاص. ولی نههه، یه سری محدودیت داره:

این عکس رو از این مقاله گرفتم
حالا کجاها بهتره که ازش استفاده کنیم:
II. Object Creation via the _new_ Keyword
List<KeyValuePair<int,string>> niceList = new List<KeyValuePair<int,string>>();
var niceList = new List<KeyValuePair<int,string>>();توی C# 9 هم میشه اینطوری نوشت و اینطوری دیگه حتی نمیخواد از var استفاده کنیم
List<KeyValuePair<int,string>> niceList = new();
### III. Explicit Type Conversions
var options = (JsonSerializerOptions)foo;IV. When a Generic Parameter Controls the Results
Yes, this is wading a bit into non-obvious waters, as it consists of statements not being controlled by built-in keywords, but if the return type of a method is directly controlled via a generic type parameter, then you may feel free to use var.
var obviousReader = Activator.CreateInstance<StreamReader>();V. When Enumerating a Local _IEnumerable T
If we have a local variable of type of IEnumerable<T>, we can more or less be assured that the object returned from enumerating it will be of type T.
IEnumerable<Type> types = FromSomewhere();
foreach (var type in types)
{
// Do stuff...
}Although this too begins to dip its toes into the land of uncertainty, I feel that it’s acceptable to also use var if we’re accessing a local collection via an indexer or some other standard method. All within reason of course.
VI. When Assigning Another Local Variable or Method Parameter
If we need to declare a variable to hold a reference to another local variable or method parameter, there can be no doubt as to what that type is, so no harm in using var here as well.
IEnumerable<Type> types = FromSomewhere();
foreach (var type in types)
{
// To prevent closures from closing over a non-local variable.
var localType = type;
// Do some lambda stuff.
}این قسمت رو هم از این سایته اوردم
Singleton.instance;Copy
Singleton.instance;Copy