فئة عم ثابتة والثابتة فئة الأعضاء (C# البرمجة الدليل)

ثابتة فئة هو شكل أساسي نفس غير ثابت فئة، ولكن هناك فرق واحد: ثابت فئة لا يمكن إنشاء مثيل. بمعنى آخر، لا يمكنك استخدام الأساسية جديدة إلى إنشاء متغير من نوع الفئة. لأن هناك هو لا يوجد متغير مثيل، يمكنك الوصول إلى الأعضاء الفئة ثابت باستخدام اسم الفئة نفسها. على سبيل المثال، إذا كان لديك ثابت فئة المسمى الذي UtilityClassيحتوي على أسلوب عام المسمى MethodA، استدعاء الأسلوب كما هو موضح في المثال التالي:

UtilityClass.MethodA();

ك هو يكتب الحالة مع الجميع الفئات، معلومات نوع فئة ثابتة هو تم تحميلهها بواسطة .NET Frameworkوقت تشغيل اللغة العامة (CLR) عند البرنامج الذي يرجع الفئة هو تم تحميله. لا يمكن تحديد البرنامج بالضبط عند الفئة هو تم تحميله. على الرغم من ذلك، فإنه هو مضمون لتم تحميله وحقوله بتهيئة المنشئ الخاص به ثابتة تسمى قبل الفئة هو المشار إليه للمرة الأولى في البرنامج الخاص بك. على الدالة الإنشائية ثابتة هو استدعاء مرة واحدة فقط، وسيبقي فئة ثابتة في ذاكرة لعمر مجال تطبيق الذي يوجد فيه البرنامج الخاص بك.

ثابت فئة يمكن استخدامها كحاوية ملائمة لمجموعات من الطرق التي تعمل تشغيل معلمات إدخال فقط ولن تحتاج إلى الحصول تشغيل أو قم بتعيين أية حقول مثيل الداخلية. على سبيل المثال، في ".NET Framework Class مكتبة"، ثابتة System.Mathفئة على العديد من الطرق التي تقوم بإجراء العمليات حسابية، بدون أي متطلبات لتخزين أو استرداد بيانات التي هو فريدة بالنسبة لمثيل خاص من Mathclass.

ملاحظة

إلى إنشاء فئة غير ثابت يسمح مثيل واحد فقط لنفسه إلى سيتم إنشاؤها، راجع تطبيق Singleإلىn في C#‎.

توفر القائمة التالية الميزات الرئيسي لثابت فئة:

  • يتضمن فقط الأعضاء ثابتون.

  • لا يمكن إنشاء.

  • هو مختوم.

  • لا يمكن أن تتضمن من المنشئات مثيل.

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

فئات ثابتة تكون مغلقة ولذلك لا يمكن أن تكون موروثة. أنها لا يورث أي فئة فيما عدا Object. فئات ثابتة لا يمكن أن يحتوي الدالة الإنشائية مثيل؛ ومع ذلك، يمكنها أن تحتوي على على الدالة الإنشائية ثابتة. يجب عدم الثابتة فئة عم أيضا بتعريف على الدالة الإنشائية ثابتة إذا فئة يحتوي على الأعضاء الثابتة التي تتطلب تهيئة غير العادية. لمزيد من المعلومات، راجع الدالة الإنشائية الثابتة (إرشادات برمجة C#).

مثال

هنا هو مثال عن فئة ثابتة تحتوي على أسلوبين تحويل درجات الحرارة من فهرنهيت إلى مئوية ومن مئوية إلى فهرنهيت:

    public static class TemperatureConverter
    {
        public static double CelsiusToFahrenheit(string temperatureCelsius)
        {
            // Convert argument to double for calculations.
            double celsius = Double.Parse(temperatureCelsius);

            // Convert Celsius to Fahrenheit.
            double fahrenheit = (celsius * 9 / 5) + 32;

            return fahrenheit;
        }

        public static double FahrenheitToCelsius(string temperatureFahrenheit)
        {
            // Convert argument to double for calculations.
            double fahrenheit = Double.Parse(temperatureFahrenheit);

            // Convert Fahrenheit to Celsius.
            double celsius = (fahrenheit - 32) * 5 / 9;

            return celsius;
        }
    }

    class TestTemperatureConverter
    {
        static void Main()
        {
            Console.WriteLine("Please select the convertor direction");
            Console.WriteLine("1. From Celsius to Fahrenheit.");
            Console.WriteLine("2. From Fahrenheit to Celsius.");
            Console.Write(":");

            string selection = Console.ReadLine();
            double F, C = 0;

            switch (selection)
            {
                case "1":
                    Console.Write("Please enter the Celsius temperature: ");
                    F = TemperatureConverter.CelsiusToFahrenheit(Console.ReadLine());
                    Console.WriteLine("Temperature in Fahrenheit: {0:F2}", F);
                    break;

                case "2":
                    Console.Write("Please enter the Fahrenheit temperature: ");
                    C = TemperatureConverter.FahrenheitToCelsius(Console.ReadLine());
                    Console.WriteLine("Temperature in Celsius: {0:F2}", C);
                    break;

                default:
                    Console.WriteLine("Please select a convertor.");
                    break;
            }

            // Keep the console window open in debug mode.
            Console.WriteLine("Press any key to exit.");
            Console.ReadKey();
        }
    }
    /* Example Output:
        Please select the convertor direction
        1. From Celsius to Fahrenheit.
        2. From Fahrenheit to Celsius.
        :2
        Please enter the Fahrenheit temperature: 20
        Temperature in Celsius: -6.67
        Press any key to exit.
     */

أعضاء ثابتة

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

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

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

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

C# لا يعتمد ثابت المتغيرات المحلية (المتغيرات التي يتم تعريفها في نطاق أسلوب).

تقوم بتعريفه ثابتة فئة الأعضاء باستخدام staticالأساسية قبل نوع الإرجاع من الأعضاء، كما هو موضح في المثال التالي:

public class Automobile
{
    public static int NumberOfWheels = 4;
    public static int SizeOfGasTank
    {
        get
        {
            return 15;
        }
    }
    public static void Drive() { }
    public static event EventType RunOutOfGas;

    // Other non-static fields and properties...
}

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

Automobile.Drive();
int i = Automobile.NumberOfWheels;

إذا كانت الفئة الخاص بك يحتوي على حقول ثابتة، توفر على الدالة الإنشائية ثابتة يهيئ لهم عند الفئة هو تم تحميله.

استدعاء إلى بأسلوب ثابت إنشاء تعليمة استدعاء بلغة Microsoft Office 2010 Suite المتوسطة (MSIL)، بينما مكالمة إلى أسلوب مثيل ينشأ callvirtالإرشادات، والذي يتحقق أيضا لمراجع كائن فارغ. ومع ذلك، في معظم الأحيان الأداء الفرق بين هو غير هامة.

مواصفات لغة #C

لمزيد من المعلومات، راجع مواصفات لغة #C. مواصفات اللغة هي المصدر النهائي لبناء جملة C# واستخدامها.

راجع أيضًا:

المرجع

الفئات (دليل البرمجة لـ #C)

class (مرجع #C)

الدالة الإنشائية الثابتة (إرشادات برمجة C#)

مثيل المنشئات (البرمجة C# إرشادات)

المبادئ

دليل البرمجة لـ #C

تصميم الفئة ثابتة