لماذا تعتبر نقطة إدخال الطريقة الرئيسية في معظم برامج C# ثابتة؟

StackOverflow https://stackoverflow.com/questions/2366952

  •  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 الطريقة كطريقة افتراضية للاتصال.

لكل كائنات فئة تحتوي على طريقة رئيسية وطرق ومتغيرات أخرى ، هناك نسخ منفصلة من كل متغير والأساليب التي تحتوي عليها جميع الكائنات ولكن نسخة الفئة الرئيسية هي واحدة فقط بينها وهكذا لجعل نسخة بين عدد الكائنات لدينا لجعل الطريقة الرئيسية ثابتة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top