لماذا تعتبر نقطة إدخال الطريقة الرئيسية في معظم برامج C# ثابتة؟
-
23-09-2019 - |
سؤال
لماذا تعتبر نقطة إدخال الطريقة الرئيسية في معظم برامج C# ثابتة؟
المحلول
من أجل استدعاء طريقة مثيل ، تحتاج إلى مثيل لكائن. هذا يعني من أجل بدء برنامجك ، سيحتاج CLR إلى إنشاء مثيل للقول Program
من أجل استدعاء الطريقة Main
. ومن هنا مُنشئ Program
سوف يركض من قبل Main
الذي يهزم الغرض من وجود رئيسي تماما.
نصائح أخرى
سأقوم بتشغيل السؤال. ما هي الفائدة المقنعة لتنفيذ الميزة التي تسمح بأن يكون الرئيسي طريقة مثيل؟ الميزات باهظة الثمن. إذا لم تكن هناك فائدة مقنعة ، فلن يتم تنفيذها.
هل لديك سبب وجيه حقًا لأنه ينبغي السماح الرئيسي بأن يكون طريقة مثيل؟
من الناحية النظرية ، لديك مثيل واحد فقط من الثابت. وطريقة ثابتة تقوم بتخطيط جيد إلى تعبير نقطة تحديق واحدة لبرنامج. كان يمكن لمصممي اللغة أن يكونوا قد قاموا بإنشاء فئة برنامج خاصة لاستخدامها مع طريقة رئيسية لكنهم اختاروا إنشاء وظيفة ثابتة واحدة كنقطة دخول. على بعض المستويات ، إنه مجرد اختيار تصميم.
لأنه بخلاف ذلك ، سيتعين عليه إنشاء كائن ، وقد يسبب تشغيل المنشئ آثارًا جانبية سلبية.
كيف يمكنك إنشاء مثيل الفصل الخاص بك قبل ذلك الرئيسي خلاف ذلك؟
ال .NET runtime
يدعو Main
طريقة. (ملاحظة: يمكن أيضًا استدعاء الرئيسي من مكان آخر ، على سبيل المثال من الكود الرئيسي () بطريقة أخرى للامتحان.) static
الكلمة الرئيسية تجعل الطريقة متاحة بدون instance
من ExampleClass
. لذلك الطريقة الرئيسية هي نقطة دخول ويجب إعلانها ثابتة.
خلاف ذلك ، سيتطلب البرنامج مثيلًا ، ولكن أي مثيل يتطلب برنامجًا.
لتجنب ذلك لا يمكن حلها circular dependency
يستخدم الرئيسي كنقطة دخول
المرجعي : http://en.wikipedia.org/wiki/c_sharp_(programming_language
يمكن تنفيذ الطرق الثابتة دون إنشاء مثيل. عن طريق الاتفاقية ، لديهم main
الطريقة كطريقة افتراضية للاتصال.
لكل كائنات فئة تحتوي على طريقة رئيسية وطرق ومتغيرات أخرى ، هناك نسخ منفصلة من كل متغير والأساليب التي تحتوي عليها جميع الكائنات ولكن نسخة الفئة الرئيسية هي واحدة فقط بينها وهكذا لجعل نسخة بين عدد الكائنات لدينا لجعل الطريقة الرئيسية ثابتة.