الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

درس في ال Static Constructors

بدأه akramKamal في 27 يونيو 2009 · 1 رد · 984 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

سنقوم بإذن الله بشرح ال static Constructors

static Constructors عبارة عن Constructors عادي إلا أنه يأخذ المعرف static

مثال على ذلك

public class Book
    {
        public static int X;
        static Book()//This Is static Constructor
        {
            Console.WriteLine("static Constructor");
        }
        public Book()//This Is not static Constructor
        {
            Console.WriteLine("Non static Constructor");
        }
    }

لماذا ال static Constructor :

نحن نعرف أن ال Constructort العادي يتم استدعائه عند عمل نسخة من الكلاس وذلك كالأتي :

Book book = new Book();

لكن نجد أن ال Constructort العادي لا يتم استدعائه عند تفحص ال static data type التي يحتويها الكلاس مثل المتغير X في المثال الأول وذلك كالتالي :

int X = Book.X;

فمن هنا ظهرت الحاجة إلى ال static Constructor حتى يتمكن المبرمج من معرفة أول استخدام للكلاس سواءا كان هذا الاستخدام عن طريق عمل نسخة من الكلاس أو عن طريق استخدام static data type

أمثلة على السابق شرحه :

إذا كان لدينا الكلاس التالي :

public class Book
    {
        public static int X;
        static Book()//This Is static Constructor
        {
            Console.WriteLine("static Constructor");
        }
        public Book()//This Is not static Constructor
        {
            Console.WriteLine("Non static Constructor");
        }
    }

بين الناتج من الأكواد التالية :

الكود الأول :

static void Main(string[] args)
        {
            int X = Book.X;
        }

الكود الثاني :

static void Main(string[] args)
        {
            Book book = new Book();
        }

الكود الثالث:

 static void Main(string[] args)
        {
            int X = Book.X;
            Book book = new Book();
        }

post-193944-1246131003_thumb.png

ملاحظات على الدرس :

1. يتم استدعاء static Constructor قبل ال Constructor العادي

2. إذا كان الكلاس يرث من كلاس أخر فيتم استدعاء ال Constructors للأب قبل Constructors للإبن على نفس الترتيب في النقطة الأولى

في النهاية أرجو أن أكون قد أفدتكم شيئا ولو يسيرا

بالتوفيق...

تم تعديل هذه المشاركة بواسطة akramKamal في 27 يونيو 2009 في 22:37

قولوا لا اله الا الله تفلحوا

ومن يبتغي غير الاسلام دينا فلن يقبل منه وهو في الاخرة من الخاسرين- صدق الله العظيم

#2

موضوع جميل جداً، جزاك الله كل خير

[وسط]لا اله الا انت سبحانك انى كنت من الظالمين

[/وسط]

مواضيع مشابهة