مبدئيا:
1. كما هو الحال مع قوالب C++، فإن جوهر الأدوية العامة لـ C# هو نوع النوع.
فهو يحدد نوعًا، وكل كائن تم إنشاء مثيل له هو نوع معين، لذلك يسمى نوعًا من النوع
2. ينقسم عند حدوثه إلى حالتين:
أنواع المراجع وأنواع القيمة
نظرًا لأن نوع المرجع هو في الأساس مؤشر، وهو عنوان ذاكرة، فإن عدد البايتات المستخدمة بواسطة متغير المؤشر هو نفسه على جهاز بطول بت معين، على سبيل المثال، يستخدم جهاز 32 بت 4 بايت.
جوهر الأدوية العامة هو نوع من النوع المحدد، بعد التجميع، سيكون هناك رمز ثنائي يصف خصائص تعريف هذا النوع، والذي يتم تخزينه في الذاكرة.
نصف هنا أولاً تعريف النوع وتخصيص الذاكرة للكائنات التي تم إنشاء مثيل لها بعد تجميع التعليمات البرمجية المصدر، بعد تجميع التعليمات البرمجية المصدر، يجب برمجة ملف برنامج (مثل ملف exe) وتحميله في مساحة الذاكرة أثناء التنفيذ (نظام التشغيل الحديث). يستخدم التعيين، ويشغل الذاكرة منطقيًا، ويستخدم طريقة الترحيل فعليًا، ويستخدم أي جزء من البيانات لنقل هذا الجزء من البيانات إلى الذاكرة الفعلية)؛
عند تحديد فئة، يشكل وصف الفئة بعد التجميع (معلومات حول أعضاء البيانات، ووظائف الأعضاء، والأذونات المعنية، وما إلى ذلك) جزءًا من ملف exe، والذي يتم تحميله في الذاكرة بعد تشغيل هذا الجزء يتم تعيين البيانات الثنائية على عنوان الذاكرة وهو 0x0001؛
عند إنشاء كائن فئة، يعتمد ذلك على اللغة. في C++، يخصص كائن إنشاء مثيل للفئة الذاكرة على المكدس؛ في C#، يخصص كائن إنشاء مثيل للفئة الذاكرة في الكومة؛ المساحة (مثل نظام Windows 32 بت، مساحة ذاكرة البرنامج هي 4G). في الذاكرة المتبقية بخلاف الذاكرة المعينة بواسطة exe، عندما يتجاوز الكائن الذي تم إنشاء مثيله العمر الافتراضي أو يتم تحريره من الكومة، يتم إرجاع مساحة الذاكرة. لهذه العملية.
وبالمثل، يتم تضمين البيانات الثنائية العامة المشفرة في ملف exe ويتم تحميلها في الذاكرة.
عندما يتم إنشاء مثيل عام، أي عند تجميع نوع معين (لاحظ أن عملية إنشاء مثيل عام في C# يتم إجراؤها أثناء التجميع، أي النوع العام الذي تم إنشاء مثيل له المستخدم في التعليمات البرمجية، لكل نوع محدد، ثنائي يتم إنشاء الكود أثناء التجميع، ويتم كتابة الكود الثنائي الخاص بالعامة نفسه في ملف exe). ما مقدار المساحة التي يحتاجها الكود الثنائي لكل نوع تم إنشاء مثيل له في ملف exe؟
في لغة C#، نحتاج إلى التمييز بين أنواع المراجع وأنواع القيم. لنفترض أن النوع العام يقوم بإنشاء نوعين مرجعيين ونوعين من القيم في الكود المصدري للبرنامج.
ثم بالنسبة للأنواع المرجعية:
يستخدم أحدهما مؤشرًا مكونًا من 4 بايت، بينما يستخدم الآخر مؤشرين. تشير البيانات الثنائية إلى النوع المستخدم (مثل myClass في المتجه
لأنواع القيمة:
تتضمن أنواع القيم الهياكل وأنواع البيانات المحددة مسبقًا. عند إنشاء مثيلات عامة باستخدام مثل هذه الأنواع (مثل المتجه