0Pricing
C# Academy · درس

تحديد نوع المجموعات وفقًا للهدف

دعوا النوع المستهدف يحدّد إنشاء المجموعة

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

ما المقصود بتحديد النوع الهدف؟

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

using System;

int[] numbers = [1, 2, 3]; // target type is int[]
Console.WriteLine(numbers.GetType().Name); // Int32[]

الهدف يحدد النوع

يتحول الحرف نفسه إلى نوع ملموس مختلف اعتمادًا على نوع المتغير أو المعامل أو الإرجاع الذي تنتقل إليه قيمته.

using System;
using System.Collections.Generic;

int[] asArray = [1, 2, 3];
List<int> asList = [1, 2, 3];
Console.WriteLine(asArray is int[]);  // True
Console.WriteLine(asList is List<int>); // True

تحديد النوع الهدف في استدعاءات الأساليب

عندما يكون معامل الأسلوب من نوع مجموعة، يُحدد نوع وسيط الحرف اعتمادًا على نوع ذلك المعامل.

using System;
using System.Collections.Generic;

static void Show(List<int> items) =>
    Console.WriteLine(string.Join(",", items));

Show([10, 20, 30]); // target-typed to List<int>

تحديد النوع الهدف في قيم الإرجاع

يمكن لجسم الأسلوب إرجاع تعبير مجموعة مجرد؛ إذ يوفر نوع الإرجاع المعلن الهدف.

using System;
using System.Collections.Generic;

static List<string> Tags() => ["csharp", "dotnet", "ranges"];

Console.WriteLine(Tags().Count); // 3

استنتاج نوع العنصر

يأتي نوع العنصر من الهدف. فإذا كان الهدف double[]، تتحول القيم الحرفية الصحيحة تلقائيًا إلى double وفقًا لقواعد التوسيع.

using System;

double[] values = [1, 2, 3]; // ints widen to double
Console.WriteLine(values[0] + 0.5); // 1.5

الواجهات كأهداف

يمكن أن تستهدف تعبيرات المجموعات واجهات مثل IEnumerable<T> أو IReadOnlyList<T> أو ICollection<T>؛ ويختار المترجم نوعًا ملموسًا مناسبًا.

using System;
using System.Collections.Generic;

IReadOnlyList<int> ro = [1, 2, 3];
Console.WriteLine(ro.Count); // 3

العامل الثلاثي وتحديد النوع الهدف

يمكن أن يكون فرعا الشرط تعبيرَي مجموعة، ويُحدد نوع كل منهما اعتمادًا على السياق ليتوافق مع نوع النتيجة المشترك.

using System;

bool useDefaults = false;
int[] config = useDefaults ? [0, 0, 0] : [1, 2, 3];
Console.WriteLine(string.Join(",", config)); // 1,2,3

var ليس هدفًا

لا يمكنك كتابة var x = [1, 2, 3]; لأن var لا يوفر نوعًا هدفًا. حدّد نوعًا صريحًا، أو استخدم التعبير في موضع يُتوقع فيه نوع.

using System;

// var x = [1, 2, 3]; // compile error: no target type
int[] x = [1, 2, 3]; // ok
Console.WriteLine(x.Length); // 3

تحديد النوع الهدف مع عناصر النشر

يتعاون تحديد النوع الهدف مع عناصر النشر: إذ يحدد الهدف نوع المجموعة النهائي، بينما توفر عناصر النشر المحتويات.

using System;
using System.Collections.Generic;

int[] src = [1, 2, 3];
List<int> copy = [..src]; // copies into a List<int>
Console.WriteLine(copy is List<int>); // True

تقليل الضوضاء

يزيل تحديد النوع الهدف تكرار أسماء الأنواع. قارن بين الصيغة القديمة الزائدة والصيغة الجديدة الموجزة.

using System;

// old: type repeated
int[] oldWay = new int[] { 1, 2, 3 };
// new: type only on the left
int[] newWay = [1, 2, 3];
Console.WriteLine(oldWay.Length == newWay.Length); // True

جمع المفاهيم

يقبل هذا المساعد مجموعة للقراءة فقط من أي نوع، ويمكن للمتصلين تمرير حروف محددة النوع الهدف بحرية.

using System;
using System.Collections.Generic;

static int Count(IReadOnlyCollection<int> c) => c.Count;

Console.WriteLine(Count([1, 2, 3, 4])); // 4

تحقق سريع

اختبر مدى استيعابك لتحديد النوع الهدف.

مراجعة

لقد تعلمت كيفية تحديد نوع تعبيرات المجموعات اعتمادًا على السياق.

  • يقود نوع الوجهة، سواء كان متغيرًا أو معاملًا أو قيمة إرجاع، عملية الإنشاء.
  • يمكن توسيع أنواع العناصر لتتوافق مع الهدف.
  • تُعد الواجهات مثل IReadOnlyList<T> أهدافًا صالحة.
  • لا يمكن أن يكون var هدفًا.

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

هل درس «تحديد نوع المجموعات وفقًا للهدف» مجاني؟

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

ماذا ستتعلم في «تحديد نوع المجموعات وفقًا للهدف»؟

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

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

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

كم من الوقت يستغرق درس «تحديد نوع المجموعات وفقًا للهدف»؟

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

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

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

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

  1. صيغة تعبيرات المجموعات
  2. عنصر النشر
  3. تحديد نوع المجموعات وفقًا للهدف
  4. منشئو المجموعات
← العودة إلى C# Academy