soheil moonesi
soheil moonesi
خواندن ۲ دقیقه·۹ ماه پیش

C# Var

یا بهتر بود اسمه این تایپک رو میزاشتم 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. }

این قسمت رو هم از این سایته اوردم


vargt gt
C# enthusiast
شاید از این پست‌ها خوشتان بیاید