0Pricing
C# Academy · درس

متى تتجنبون var

حافظوا على قابلية قراءة الشيفرة بالتصريح عن النوع صراحةً عند الحاجة

متى تتجنبون var درس مجاني في C# Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C# Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C# Academy 4 دروس في المجموع.

قد يخفي var النوع

يُعد var مريحًا، لكنه قد يحجب النوع الفعلي للمتغير، مما يضر بقابلية القراءة للقارئ التالي.

using System;

class Program {
    static void Main() {
        var x = Compute();
        Console.WriteLine(x);
    }
    static int Compute() { return 42; }
}

القيم المعادة غير الواضحة من الأساليب

عندما لا يكشف اسم الأسلوب عن نوع القيمة المعادة، يُفضّل استخدام النوع الصريح حتى يعرف القارئ ما لديه.

using System;

class Program {
    static double Process() { return 3.14; }
    static void Main() {
        double value = Process();
        Console.WriteLine(value);
    }
}

مفاجآت أنواع الأرقام

يكون var sum = 0 من النوع int. وإذا كنت تتوقع النوع double، فقد يؤدي ذلك إلى أخطاء القسمة الصحيحة.

using System;

class Program {
    static void Main() {
        double sum = 0;
        sum += 7 / 2.0;
        Console.WriteLine(sum);
    }
}

استخدم التصريح الصريح مع الواجهات

إذا أردت البرمجة باستخدام واجهة، فصرّح بها صراحةً؛ إذ سيختار var النوع الفعلي بدلًا منها.

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        IList<int> items = new List<int> { 1, 2 };
        Console.WriteLine(items.Count);
    }
}

القيم الابتدائية البعيدة

عندما تكون القيمة الابتدائية تعبيرًا طويلًا أو متداخلًا، يوضّح النوع الصريح القصد بصورة أفضل من var.

using System;

class Program {
    static void Main() {
        int finalScore = (10 + 5) * 2 - 3;
        Console.WriteLine(finalScore);
    }
}

تجنبه لزيادة وضوح الأنواع البدائية

تكتب فرق كثيرة النوع الصريح مع الأنواع البدائية البسيطة حتى يكون نوع الرقم المقصود واضحًا تمامًا.

using System;

class Program {
    static void Main() {
        long bigCount = 5000000000;
        Console.WriteLine(bigCount);
    }
}

لا يمكن أن يكون var حقلًا

يُستخدم var للمتغيرات المحلية فقط. أما الحقول والمعاملات والأنواع المعادة، فيجب تحديدها دائمًا بشكل صريح.

using System;

class Program {
    static int field = 100;
    static void Main() {
        Console.WriteLine(field);
    }
}

الاستنتاج المختلط للأنواع الرقمية

انتبه: يظل التعبير var avg = total / count من النوع int إذا كان كلا المتغيرين من نوع int. اجعل القصد صريحًا عندما تحتاج إلى أعداد عشرية.

using System;

class Program {
    static void Main() {
        int total = 7, count = 2;
        double avg = (double)total / count;
        Console.WriteLine(avg);
    }
}

عندما تختلف أدلة الأسلوب

تنص بعض الأدلة على «استخدم var فقط عندما يكون النوع واضحًا من الطرف الأيمن». ويساعد اتباع قاعدة متسقة الفريق بأكمله.

using System;

class Program {
    static void Main() {
        var customer = new string("Ann"[0], 3);
        Console.WriteLine(customer);
    }
}

وازن بين الراحة والوضوح

الهدف هو كتابة تعليمات برمجية سهلة القراءة. استخدم var حيث يساعد، واستخدم الأنواع الصريحة حيث تزيد الوضوح.

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        var lookup = new Dictionary<int, string>();
        int key = 1;
        lookup[key] = "one";
        Console.WriteLine(lookup[1]);
    }
}

قاعدة عملية تقريبية

إذا لم تتمكن من معرفة النوع من قراءة السطر وحده، فاكتبه صراحةً. وإلا فلا مشكلة في استخدام var.

using System;

class Program {
    static void Main() {
        var greeting = "Hello";
        decimal price = 19.99m;
        Console.WriteLine(greeting + " " + price);
    }
}

تحقق سريع

اختبر قدرتك على تحديد الحالات التي ينبغي فيها تجنب var.

مراجعة

تجنب var عندما يخفي نوعًا مهمًا، أو عندما يكون النوع الرقمي مهمًا (int مقابل double)، أو عندما تريد الاستهداف عبر واجهة، أو عندما لا يكشف اسم الأسلوب عن نوع القيمة المعادة.

يعمل var مع المتغيرات المحلية فقط. والقاعدة الجيدة هي: إذا لم يكشف السطر وحده عن النوع، فاكتبه صراحةً.

الأسئلة الشائعة

هل درس «متى تتجنبون var» مجاني؟

نعم — نص درس «متى تتجنبون var» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C# Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C# Academy 4 دروس في المجموع.

ماذا ستتعلم في «متى تتجنبون var»؟

حافظوا على قابلية قراءة الشيفرة بالتصريح عن النوع صراحةً عند الحاجة تتمرن على C# Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ C# Academy؟

لا تُشترط خبرة سابقة. C# Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «متى تتجنبون var»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس C# Academy هذا؟

نعم. كل درس في C# Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. استنتاج نوع المتغير المحلي باستخدام var
  2. متى تتجنبون var
  3. النوع dynamic
  4. تعبيرات new ذات النوع المستهدف
← العودة إلى C# Academy