هل يمكن أن يرث النوع المجهول من نوع آخر؟
-
28-09-2019 - |
سؤال
وفقًا لوثائق MSDN على StringComparer.OrdinalIgnoreCase
منشأه:
تُرجع خاصية OrdinalIgnoreCase فعليًا مثيلًا لفئة مجهولة مستمدة من StringComparer صف دراسي.
هل هذه ميزة أنا غير معتاد عليها - أنواع مفيدة مع الميراث؟ أو عن طريق "فئة مجهولة" هل يعني المؤلف ببساطة "فئة داخلية مستمدة من StringComparer
, ، غير مرئي لرمز العميل "؟
المحلول
إذا نظرت إلى الكود المصدري لـ StringComparer ، فيمكنك أن ترى أن OrginalIgnoreCase يعيد مثيلًا لـ Ordinalcomparer ، والذي يتم اشتقاقه من StringComparer.
لا يوجد شيء "مجهول" حول هذا الأمر الذي يمكنني رؤيته ، إنه مجرد ذلك داخلي لذلك لا يمكنك رؤيته من خارج الإطار.
نصائح أخرى
إنه ليس نوعًا مجهولًا في المعنى C# الطبيعي للمصطلح.
إنه مجرد نوع داخلي ، لذلك لا تعرف اسمه: لا يمكنك الرجوع إلى النوع الدقيق داخل الكود الخاص بك.
ال المترجم يمكن أن تخلق أنواع مجهولة ترث من نوع آخر - لا يمكنك ذلك. إنه أمر سيء للغاية ، حقًا لأنه سيكون ميزة رائعة لإنشاء نوع مجهول على الطيران يرث إما من فئة أخرى أو ينفذ واجهة.
نوع مجهول هو مجهول لنا ليس CLR و COMPLIER. يستخدم برنامج التحويل البرمجي تسمية مضحكة تتضمن <> في الاسم ويمكن للمترجم فقط القيام بذلك! و ربما تشاك نوريس...