سؤال

هل ستؤدي كل مكالمة ثابتة إلى بدء موضوع جديد؟

على سبيل المثال:

class A
{
    public static void displayName()
    {
        Console.WriteLine("myName");
    }

    public static void displayAge()
    {
        Console.WriteLine("myAge");
    }
}


class B
{
    public void Foo()
    {
        A.displayName();
        A.displayAge();           
    }
} 

هل سيتم تشغيل المكالمات المذكورة أعلاه بشكل مستقل عن بعضها البعض؟إذا كانت الإجابة بنعم، فهل هو شيء مشابه للخيوط؟

هل كانت مفيدة؟

المحلول

ورد على شك الخاص بشأن دعوة ثابتة:

<اقتباس فقرة>   

ولكن سمعت كل مكالمة ثابتة هي   مستقلة عن بعضها البعض كما أن هناك   لم مثيل وثابت أعضاء فقط   هي المعنية. هو كذلك؟ - سري كومار 36   دقائق قبل

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

وكما هو الحال في المثال، يمكنك إنشاء 'المستخدم' سبيل المثال عن طريق الاتصال ClassA myA = new ClassA(). وفي الوقت نفسه، سوف يكون هناك مثيل "العالمي"، والذي يتم إنشاؤه بواسطة وقت التشغيل ولكن غير مرئية بالنسبة لك، وأساليب ثابتة يقيم في هذه الحالة. طرق ثابت السلوك وسائل المثال في هذا المثال "العالمي".

ومثير للدهشة، في C # وجود منشئ ثابت، والتي سوف يتم استدعاؤها عند تهيئة سبيل المثال "العالمي" من قبل وقت التشغيل.

ويمكنك اختبار هذا الرمز:

class A
{
    static A() {
       Console.WriteLine("Creating the global instance of class A....");
    }

    public static void displayName()
    {
        Console.WriteLine("myName");
    }

    public static void displayAge()
    {
        Console.WriteLine("myAge");
    }
}


class B
{
    public void Foo()
    {
        A.displayName();
        A.displayAge();           
    }
}

والناتج سيكون:

Creating the global instance of class A....
myName
myAge

وبصرف النظر عن هذا، أساليب ثابتة ليس لديهم ما الفرق من الأساليب المثيل.

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

نصائح أخرى

ولا أنها سوف تعمل بشكل متتالي على نفس موضوع

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

وانها حقا يتوقف على أين الاحتجاج. أساليب ثابتة في حد ذاته لا يخلق أي المواضيع وتشغيل الداخل.

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

وسيتم تشغيل جميع الأساليب على موضوع من طريقة الاحتجاج، سواء الافتراضية أو ثابت. إذا كنت ترغب في طريقة لتشغيل على موضوع مختلف، استخدام التجمع موضوع أو بعض تقنية أخرى.

شيء اخر:

سمعت أن كل مكالمة ثابتة مستقلة عن بعضها البعض

استدعاءات الطريقة الثابتة ليست مستقلة حقًا.

لا يزال بإمكان الطريقة الثابتة الوصول إلى الحقول والخصائص الثابتة الأخرى داخل نفس الفئة، أو الحقول والخصائص الثابتة المرئية بشكل عام للفئات الأخرى، والتي تكون أيضًا عامة ويتم الاحتفاظ بها طوال عمر تطبيقك.

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

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