استنتاج نوع المتغير المحلي باستخدام var
استخدموا var عندما يكون النوع واضحًا
استنتاج نوع المتغير المحلي باستخدام var درس مجاني في C# Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C# Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C# Academy 4 دروس في المجموع.
ما هو var؟
يتيح var للمترجم استنتاج نوع المتغير المحلي من القيمة الابتدائية. ومع ذلك، يظل المتغير محدد النوع بقوة أثناء الترجمة.
using System;
class Program {
static void Main() {
var count = 10;
Console.WriteLine(count);
}
}var ليس dynamic
يُحدَّد var أثناء الترجمة. فالتعبير var x = 10 هو تحديدًا من النوع int، ولا يمكنه احتواء سلسلة نصية لاحقًا.
using System;
class Program {
static void Main() {
var name = "Ada";
Console.WriteLine(name.GetType().Name);
}
}الاستنتاج من القيم الحرفية
يقرأ المترجم القيمة الحرفية لاختيار النوع: 1 من النوع int، و1.5 من النوع double، و"hi" من النوع string.
using System;
class Program {
static void Main() {
var a = 1;
var b = 1.5;
var c = "hi";
Console.WriteLine(a.GetType().Name + " " + b.GetType().Name + " " + c.GetType().Name);
}
}القيمة الابتدائية مطلوبة
بما أن النوع يُستنتج من القيمة الابتدائية، يجب إسناد قيمة إلى متغيرات var عند التصريح عنها.
using System;
class Program {
static void Main() {
var total = 0;
for (int i = 1; i <= 4; i++) total += i;
Console.WriteLine(total);
}
}استخدام var مع الأنواع الواضحة
يكون var مفيدًا جدًا عندما يوضّح الطرف الأيمن النوع مسبقًا، مثل استدعاء مُنشئ. فهو يتجنب التكرار.
using System;
using System.Collections.Generic;
class Program {
static void Main() {
var list = new List<int> { 1, 2, 3 };
Console.WriteLine(list.Count);
}
}استخدام var مع نتائج الأساليب
يمكنك استخدام var للقيم المعادة عندما يجعل اسم الأسلوب النوع واضحًا.
using System;
class Program {
static int Square(int n) { return n * n; }
static void Main() {
var result = Square(6);
Console.WriteLine(result);
}
}var في foreach
يكون var عمليًا في حلقات foreach التي تتعامل مع مجموعات ذات أنواع عناصر معروفة.
using System;
class Program {
static void Main() {
var names = new[] { "Sam", "Lee" };
foreach (var n in names)
Console.WriteLine(n);
}
}المصفوفات المستنتجة
تستنتج المصفوفة ذات النوع الضمني new[] { ... } نوع عناصرها من القيم.
using System;
class Program {
static void Main() {
var nums = new[] { 10, 20, 30 };
Console.WriteLine(nums.Length);
}
}var يظل آمنًا من ناحية النوع
بما أن النوع ثابت، يفشل إسناد نوع غير صحيح لاحقًا أثناء الترجمة، تمامًا كما يحدث في التصريح الصريح.
using System;
class Program {
static void Main() {
var x = 5;
x = 10;
Console.WriteLine(x);
}
}var والأنواع المجهولة
يُعد var مطلوبًا للأنواع المجهولة، إذ لا يملك هذا النوع اسمًا يمكنك كتابته.
using System;
class Program {
static void Main() {
var point = new { X = 3, Y = 4 };
Console.WriteLine(point.X + ", " + point.Y);
}
}فائدة قابلية القراءة
عند استخدامه بطريقة مناسبة، يقلل var التشويش ويحافظ على محاذاة التعليمات البرمجية، خصوصًا مع أسماء الأنواع العامة الطويلة.
using System;
using System.Collections.Generic;
class Program {
static void Main() {
var scores = new Dictionary<string, int> { ["Ann"] = 90 };
Console.WriteLine(scores["Ann"]);
}
}تحقق سريع
اختبر مدى فهمك لـ var.
مراجعة
يطلب var من المترجم استنتاج نوع المتغير المحلي من قيمته الابتدائية، لذلك يظل المتغير محدد النوع بقوة وثابتًا أثناء الترجمة، بخلاف dynamic.
يتطلب var قيمة ابتدائية، ويزيل أسماء الأنواع المكررة، ويُعد مطلوبًا للأنواع المجهولة. كما يحسن قابلية القراءة عندما يكون النوع واضحًا مسبقًا.
الأسئلة الشائعة
هل درس «استنتاج نوع المتغير المحلي باستخدام var» مجاني؟
نعم — نص درس «استنتاج نوع المتغير المحلي باستخدام var» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C# Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C# Academy 4 دروس في المجموع.
ماذا ستتعلم في «استنتاج نوع المتغير المحلي باستخدام var»؟
استخدموا var عندما يكون النوع واضحًا تتمرن على C# Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ C# Academy؟
لا تُشترط خبرة سابقة. C# Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «استنتاج نوع المتغير المحلي باستخدام var»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس C# Academy هذا؟
نعم. كل درس في C# Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- استنتاج نوع المتغير المحلي باستخدام var
- متى تتجنبون var
- النوع dynamic
- تعبيرات new ذات النوع المستهدف