مضى على الشبكة و يوم من العطاء.

[ شرح ] الدرس الثالث قراءة types بداخل الاسيمبلي

Xerin

./عضو جديد

السمعة:

في الدرس السابق قمنا بشرح كيفية عمل Load لأسيبملي
load.webp

والان نريد قراءة محتوي الاسيمبلي على سبيل المثال الاسيمبلي بداخله Types وهي نوعين Normal types و Nested types جميل ؟
لنشرح اكثر

1. الانواع العادية​

هي الأنواع المعرفة بشكل منفصل ومستقل داخل الـ Assembly. يتم تعريف هذه الأنواع في الجذر الرئيسي للـ Assembly، ولا تعتمد على أي نوع آخر. يمكن أن تكون هذه الأنواع مرئية واستخدامها بشكل مباشر في أي مكان داخل الـ Assembly أو من الخارج (إذا كانت مرئية بشكل عام public). مثل:
Capture.webp

2. Nested types (الأنواع المتداخلة)​

هي الأنواع التي يتم تعريفها داخل نوع آخر (مثل class أو struct). تكون هذه الأنواع في العادة جزءًا من النوع الخارجي وتعتمد عليه. يمكن الوصول إليها فقط من خلال النوع الخارجي، وقد تكون مرئية بشكل محدود بناءً على مستوى وصولها.

مثال على النوع المتداخل:
Capture2.webp

في هذا المثال، NestedClass هو نوع متداخل (Nested Type) ضمن OuterClass. للوصول إلى NestedClass، يجب المرور عبر OuterClass مثل:
Capture3.webp

الان لنتابع كيفية قراءة Types او NestedTypes بداخل الاسيمبلي

اولا سنقوم بإنشاء متغير يدعي Types ومتغير يدعى NestedTypes
var types
var nestedTypes
اولاً types
types.webp

كما ترى هنا خاصية (Types) فقط تحصل على Normal types جميل ؟
ثانياً Nested types
nested.webp

كما ترى هنا خاصية (GetTypes()) تحصل على جميع ال types بداخل اسيمبلي وليس مثل خاصية Types فقط ال Types العادية

نتابع..
طيب احنا انشأنا متغييرين واحد types والتاني nestedtypes جميل الان نريد استعراضهم وقراءة ال types

بإستخدام foreach للتكرار عبر متغير types وقراءة كل type بداخله لذلك انصحك بتعلم اساسيات البرمجة اولاً..
read names.webp

كما تري هنا نقوم بالحصول على اسم كل type داخل متغير types
عبر المتغير العام var t بداخل types

و بإستخدام خاصية FullName ستحصل علي الإسم كاملاً
الان لنري داخل نافذة ال console النتيجة النهائية

full name.webp

كما ترى هنا تم الحصول على الاسم بالكامل مع namespace
مثلاً هذا ال class كما ترى يحتوي على namespace Study
namespace Study
{
internal class normaltype1
{
}
}

لكن اذا استخدمت خاصية Name ستحصل على normaltype1 فقط بدون Namespace جميل؟

لكن الان كما ترى في الصورة استعرض فقط OuterClass وكما شرحنا بالأعلي في OuterClass يوجد بداخله Class اخر وهو NestedType ولم يتم استعراضه لأننا قمنا بعمل حلقة تكرارية على متغير types
Capture2.webp


جميل الان نقوم بعمل حلقة تكرارية على متغير nestedTypes ونرى النتيجة
foreach nested.webp

nested types.webp

كما تري في الصورة قام بالحصول علي كل ال types بدون استثناء حتى nestedClass

انتهى الدرس اتمني اذا لم تفهم شئ ولو بسيط بكتابة تعليق وانا سأقوم بالتوضيح اكثر ♥

انتظروا الدرس الرابع ان شاء الله
 

المرفقات

  • foreach nested.webp
    foreach nested.webp
    5.9 KB · المشاهدات: 115
التعديل الأخير:
حبيبي ياغالي
 
  • Love
التفاعلات: Xerin
في الدرس السابق قمنا بشرح كيفية عمل Load لأسيبملي
مشاهدة المرفق 15436
والان نريد قراءة محتوي الاسيمبلي على سبيل المثال الاسيمبلي بداخله Types وهي نوعين Normal types و Nested types جميل ؟
لنشرح اكثر

1. الانواع العادية​

هي الأنواع المعرفة بشكل منفصل ومستقل داخل الـ Assembly. يتم تعريف هذه الأنواع في الجذر الرئيسي للـ Assembly، ولا تعتمد على أي نوع آخر. يمكن أن تكون هذه الأنواع مرئية واستخدامها بشكل مباشر في أي مكان داخل الـ Assembly أو من الخارج (إذا كانت مرئية بشكل عام public). مثل:
مشاهدة المرفق 15437

2. Nested types (الأنواع المتداخلة)​

هي الأنواع التي يتم تعريفها داخل نوع آخر (مثل class أو struct). تكون هذه الأنواع في العادة جزءًا من النوع الخارجي وتعتمد عليه. يمكن الوصول إليها فقط من خلال النوع الخارجي، وقد تكون مرئية بشكل محدود بناءً على مستوى وصولها.

مثال على النوع المتداخل:
مشاهدة المرفق 15438
في هذا المثال، NestedClass هو نوع متداخل (Nested Type) ضمن OuterClass. للوصول إلى NestedClass، يجب المرور عبر OuterClass مثل:
مشاهدة المرفق 15439
الان لنتابع كيفية قراءة Types او NestedTypes بداخل الاسيمبلي

اولا سنقوم بإنشاء متغير يدعي Types ومتغير يدعى NestedTypes
var types
var nestedTypes
اولاً types
مشاهدة المرفق 15440
كما ترى هنا خاصية (Types) فقط تحصل على Normal types جميل ؟
ثانياً Nested types
مشاهدة المرفق 15441
كما ترى هنا خاصية (GetTypes()) تحصل على جميع ال types بداخل اسيمبلي وليس مثل خاصية Types فقط ال Types العادية

نتابع..
طيب احنا انشأنا متغييرين واحد types والتاني nestedtypes جميل الان نريد استعراضهم وقراءة ال types

بإستخدام foreach للتكرار عبر متغير types وقراءة كل type بداخله لذلك انصحك بتعلم اساسيات البرمجة اولاً..
مشاهدة المرفق 15442
كما تري هنا نقوم بالحصول على اسم كل type داخل متغير types
عبر المتغير العام var t بداخل types

و بإستخدام خاصية FullName ستحصل علي الإسم كاملاً
الان لنري داخل نافذة ال console النتيجة النهائية

مشاهدة المرفق 15443
كما ترى هنا تم الحصول على الاسم بالكامل مع namespace
مثلاً هذا ال class كما ترى يحتوي على namespace Study
namespace Study
{
internal class normaltype1
{
}
}

لكن اذا استخدمت خاصية Name ستحصل على normaltype1 فقط بدون Namespace جميل؟

لكن الان كما ترى في الصورة استعرض فقط OuterClass وكما شرحنا بالأعلي في OuterClass يوجد بداخله Class اخر وهو NestedType ولم يتم استعراضه لأننا قمنا بعمل حلقة تكرارية على متغير types
مشاهدة المرفق 15444

جميل الان نقوم بعمل حلقة تكرارية على متغير nestedTypes ونرى النتيجة
مشاهدة المرفق 15448
مشاهدة المرفق 15445
كما تري في الصورة قام بالحصول علي كل ال types بدون استثناء حتى nestedClass

انتهى الدرس اتمني اذا لم تفهم شئ ولو بسيط بكتابة تعليق وانا سأقوم بالتوضيح اكثر ♥

انتظروا الدرس الرابع ان شاء الله
يعطيك العافية اخي ❤ ,
الأمانة ابداع وسلسلة اسطورية منك اخي !!
 
والله اننا منتضر كل جديد بفارغ الصبر
الله يبارك فيك اخي
 
  • Love
التفاعلات: Xerin
في الدرس السابق قمنا بشرح كيفية عمل Load لأسيبملي
مشاهدة المرفق 15436
والان نريد قراءة محتوي الاسيمبلي على سبيل المثال الاسيمبلي بداخله Types وهي نوعين Normal types و Nested types جميل ؟
لنشرح اكثر

1. الانواع العادية​

هي الأنواع المعرفة بشكل منفصل ومستقل داخل الـ Assembly. يتم تعريف هذه الأنواع في الجذر الرئيسي للـ Assembly، ولا تعتمد على أي نوع آخر. يمكن أن تكون هذه الأنواع مرئية واستخدامها بشكل مباشر في أي مكان داخل الـ Assembly أو من الخارج (إذا كانت مرئية بشكل عام public). مثل:
مشاهدة المرفق 15437

2. Nested types (الأنواع المتداخلة)​

هي الأنواع التي يتم تعريفها داخل نوع آخر (مثل class أو struct). تكون هذه الأنواع في العادة جزءًا من النوع الخارجي وتعتمد عليه. يمكن الوصول إليها فقط من خلال النوع الخارجي، وقد تكون مرئية بشكل محدود بناءً على مستوى وصولها.

مثال على النوع المتداخل:
مشاهدة المرفق 15438
في هذا المثال، NestedClass هو نوع متداخل (Nested Type) ضمن OuterClass. للوصول إلى NestedClass، يجب المرور عبر OuterClass مثل:
مشاهدة المرفق 15439
الان لنتابع كيفية قراءة Types او NestedTypes بداخل الاسيمبلي

اولا سنقوم بإنشاء متغير يدعي Types ومتغير يدعى NestedTypes
var types
var nestedTypes
اولاً types
مشاهدة المرفق 15440
كما ترى هنا خاصية (Types) فقط تحصل على Normal types جميل ؟
ثانياً Nested types
مشاهدة المرفق 15441
كما ترى هنا خاصية (GetTypes()) تحصل على جميع ال types بداخل اسيمبلي وليس مثل خاصية Types فقط ال Types العادية

نتابع..
طيب احنا انشأنا متغييرين واحد types والتاني nestedtypes جميل الان نريد استعراضهم وقراءة ال types

بإستخدام foreach للتكرار عبر متغير types وقراءة كل type بداخله لذلك انصحك بتعلم اساسيات البرمجة اولاً..
مشاهدة المرفق 15442
كما تري هنا نقوم بالحصول على اسم كل type داخل متغير types
عبر المتغير العام var t بداخل types

و بإستخدام خاصية FullName ستحصل علي الإسم كاملاً
الان لنري داخل نافذة ال console النتيجة النهائية

مشاهدة المرفق 15443
كما ترى هنا تم الحصول على الاسم بالكامل مع namespace
مثلاً هذا ال class كما ترى يحتوي على namespace Study
namespace Study
{
internal class normaltype1
{
}
}

لكن اذا استخدمت خاصية Name ستحصل على normaltype1 فقط بدون Namespace جميل؟

لكن الان كما ترى في الصورة استعرض فقط OuterClass وكما شرحنا بالأعلي في OuterClass يوجد بداخله Class اخر وهو NestedType ولم يتم استعراضه لأننا قمنا بعمل حلقة تكرارية على متغير types
مشاهدة المرفق 15444

جميل الان نقوم بعمل حلقة تكرارية على متغير nestedTypes ونرى النتيجة
مشاهدة المرفق 15448
مشاهدة المرفق 15445
كما تري في الصورة قام بالحصول علي كل ال types بدون استثناء حتى nestedClass

انتهى الدرس اتمني اذا لم تفهم شئ ولو بسيط بكتابة تعليق وانا سأقوم بالتوضيح اكثر ♥

انتظروا الدرس الرابع ان شاء الله
الله يعطيك ألف ألف عافية
استمر بالدورة و إن شاء الله نخليها دورة رسمية من دورات المنتدى بقسم الدورات إن كان محتواها قوي و استمررت بها

بالتوفيق أخي و ننتظر الدرس الرابع و باقي الدروس ❤️
 
والله ان المنصه هذي لها مستقبل زاهر بكل ما تعنيه الكلمة
صرت مدمن عليها بالرغم من اني عرفتها الا ليومين فقط
 
في الدرس السابق قمنا بشرح كيفية عمل Load لأسيبملي
مشاهدة المرفق 15436
والان نريد قراءة محتوي الاسيمبلي على سبيل المثال الاسيمبلي بداخله Types وهي نوعين Normal types و Nested types جميل ؟
لنشرح اكثر

1. الانواع العادية​

هي الأنواع المعرفة بشكل منفصل ومستقل داخل الـ Assembly. يتم تعريف هذه الأنواع في الجذر الرئيسي للـ Assembly، ولا تعتمد على أي نوع آخر. يمكن أن تكون هذه الأنواع مرئية واستخدامها بشكل مباشر في أي مكان داخل الـ Assembly أو من الخارج (إذا كانت مرئية بشكل عام public). مثل:
مشاهدة المرفق 15437

2. Nested types (الأنواع المتداخلة)​

هي الأنواع التي يتم تعريفها داخل نوع آخر (مثل class أو struct). تكون هذه الأنواع في العادة جزءًا من النوع الخارجي وتعتمد عليه. يمكن الوصول إليها فقط من خلال النوع الخارجي، وقد تكون مرئية بشكل محدود بناءً على مستوى وصولها.

مثال على النوع المتداخل:
مشاهدة المرفق 15438
في هذا المثال، NestedClass هو نوع متداخل (Nested Type) ضمن OuterClass. للوصول إلى NestedClass، يجب المرور عبر OuterClass مثل:
مشاهدة المرفق 15439
الان لنتابع كيفية قراءة Types او NestedTypes بداخل الاسيمبلي

اولا سنقوم بإنشاء متغير يدعي Types ومتغير يدعى NestedTypes
var types
var nestedTypes
اولاً types
مشاهدة المرفق 15440
كما ترى هنا خاصية (Types) فقط تحصل على Normal types جميل ؟
ثانياً Nested types
مشاهدة المرفق 15441
كما ترى هنا خاصية (GetTypes()) تحصل على جميع ال types بداخل اسيمبلي وليس مثل خاصية Types فقط ال Types العادية

نتابع..
طيب احنا انشأنا متغييرين واحد types والتاني nestedtypes جميل الان نريد استعراضهم وقراءة ال types

بإستخدام foreach للتكرار عبر متغير types وقراءة كل type بداخله لذلك انصحك بتعلم اساسيات البرمجة اولاً..
مشاهدة المرفق 15442
كما تري هنا نقوم بالحصول على اسم كل type داخل متغير types
عبر المتغير العام var t بداخل types

و بإستخدام خاصية FullName ستحصل علي الإسم كاملاً
الان لنري داخل نافذة ال console النتيجة النهائية

مشاهدة المرفق 15443
كما ترى هنا تم الحصول على الاسم بالكامل مع namespace
مثلاً هذا ال class كما ترى يحتوي على namespace Study
namespace Study
{
internal class normaltype1
{
}
}

لكن اذا استخدمت خاصية Name ستحصل على normaltype1 فقط بدون Namespace جميل؟

لكن الان كما ترى في الصورة استعرض فقط OuterClass وكما شرحنا بالأعلي في OuterClass يوجد بداخله Class اخر وهو NestedType ولم يتم استعراضه لأننا قمنا بعمل حلقة تكرارية على متغير types
مشاهدة المرفق 15444

جميل الان نقوم بعمل حلقة تكرارية على متغير nestedTypes ونرى النتيجة
مشاهدة المرفق 15448
مشاهدة المرفق 15445
كما تري في الصورة قام بالحصول علي كل ال types بدون استثناء حتى nestedClass

انتهى الدرس اتمني اذا لم تفهم شئ ولو بسيط بكتابة تعليق وانا سأقوم بالتوضيح اكثر ♥

انتظروا الدرس الرابع ان شاء الله
وحش الله يعطيك العافيه يارب💐🙏
بإنتظار جديدك
 
التعديل الأخير:

آخر المشاركات

عودة
أعلى