ثابت (C# مرجع)

استخدام staticمعدّل إعلان عضو ثابت، الذي ينتمي إلى النوع نفسه بدلاً من كائن محدد. staticيمكن استخدام المعدل مع فئات حقول، وظائف، الخصائص، العوامل، أحداث، و المنشئات، ولكن يتعذر استخدامه مع مفهرسات أو destructors أو أنواع غير ذلك من الفئات. لمزيد من المعلومات، راجع فئة عم ثابتة والثابتة فئة الأعضاء (C# البرمجة الدليل).

مثال

الفئة التالية هو تعريف ك staticويتضمن فقط staticوظائف:

    static class CompanyEmployee
    {
        public static void DoSomething() { /*...*/ }
        public static void DoSomethingElse() { /*...*/  }
    }

ضمنياً يتم إعلان ثابت أو نوع عضو ثابت.

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

    public class MyBaseC
    {
        public struct MyStruct
        {
            public static int x = 100;
        }
    }

للإشارة إلى العضو ثابتة x، استخدم اسم مؤهل بشكل كامل، MyBaseC.MyStruct.x، ما لم يكن العضو هو يمكن الوصول إليها من نفس نطاق:

Console.WriteLine(MyBaseC.MyStruct.x);

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

من غير الممكن استخدام هذا إلى مرجع وظائف ثابتة أو خاصية accessors.

إذا staticالكلمة الأساسية هو تطبيق فئة، يجب أن يكون الجميع الأعضاء الفئة ثابت.

الفصول الدراسية و ثابت قد تتضمن الفئات ثابت المنشئات. تسمى المنشئات ثابتة عند يؤشر ما بين عند بدء تشغيل البرنامج والفئة هو إنشاء مثيل.

ملاحظة

للكلمة الأساسية static استخدامات محدودة أكثر من الـ ++C. إلى مقارنة باستخدام الكلمة الأساسية C + +، راجع Static (C++).

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

هذا المثال يقرأ الاسم والالمعرف لموظف جديد قم بزيادة العداد الموظف بأحد وقم بعرض المعلومات الخاصة بالموظف الجديد والجديد رقم الموظفين. البساطة، يقوم هذا البرنامج بقراءة العدد الحالي للموظفين من لوحة المفاتيح. في تطبيق حقيقي، وهذا معلومات يجب أن تتم قراءته من ملف.

    public class Employee4
{
    public string id;
    public string name;

    public Employee4()
    {
    }

    public Employee4(string name, string id)
    {
        this.name = name;
        this.id = id;
    }

    public static int employeeCounter;

    public static int AddEmployee()
    {
        return ++employeeCounter;
    }
}

class MainClass : Employee4
{
    static void Main()
    {
        Console.Write("Enter the employee's name: ");
        string name = Console.ReadLine();
        Console.Write("Enter the employee's ID: ");
        string id = Console.ReadLine();

        // Create and configure the employee object:
        Employee4 e = new Employee4(name, id);
        Console.Write("Enter the current number of employees: ");
        string n = Console.ReadLine();
        Employee4.employeeCounter = Int32.Parse(n);
        Employee4.AddEmployee();

        // Display the new information:
        Console.WriteLine("Name: {0}", e.name);
        Console.WriteLine("ID:   {0}", e.id);
        Console.WriteLine("New Number of Employees: {0}",
                      Employee4.employeeCounter);
    }
}
    /*
    Input:
    Matthias Berndt
    AF643G
    15
    Sample Output:
    Enter the employee's name: Matthias Berndt
    Enter the employee's ID: AF643G
    Enter the current number of employees: 15
    Name: Matthias Berndt
    ID:   AF643G
    New Number of Employees: 16
    */

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

class Test
{
   static int x = y;
   static int y = 5;

   static void Main()
   {
      Console.WriteLine(Test.x);
      Console.WriteLine(Test.y);

      Test.x = 99;
      Console.WriteLine(Test.x);
   }
}
/*
Output:
    0
    5
    99
*/

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

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

راجع أيضًا:

المرجع

الكلمات الأساسية لـ #C

المعدّلات (مرجع #C)

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

المبادئ

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

موارد أخرى

مرجع C#‎