this (مرجع #C)

الكلمة الأساسية this تشير إلى المثيل الحالي للفئة كما يتم استخدامها كمعدّل لأول معلمة لأسلوب توسيع.

ملاحظة

تتناول هذه المقالة استخدام this مع مثيلات الفئات. للحصول على معلومات أكثر حول استخدامها في أساليب التوسيع أساليب التوسيع (ارشادات برمجة C#).

فيما يلي استخدامات شائعة لـ this:

  • لتأهيل أعضاء مخفية بسبب أسماء مشابهة على سبيل المثال:
public Employee(string name, string alias)
{
    // Use this to qualify the fields, name and alias:
    this.name = name;
    this.alias = alias;
}
  • لتمرير كائن كمعلمة إلى أساليب أخرى على سبيل المثال:

    CalcTax(this);
    
  • للتصريح عن مفهرسات على سبيل المثال:

public int this[int param]
{
    get { return array[param]; }
    set { array[param] = value; }
}

دوال الأعضاء الثابتة (لأنها تكون موجودة على مستوى الفئة وليس كجزء من الكائن) لا تحتوي على المؤشر this. من الخطأ استخدام this في أسلوب ثابت.

مثال

في هذا المثال، يتم استخدام this لتأهيل أعضاء الفئة Employee، name و alias المخفية بواسطة أسماء مشابهة. كما يتم استخدامه لتمرير كائن إلى الأسلوب CalcTax الذي ينتمي إلى فئة أخرى.

        class Employee
        {
            private string name;
            private string alias;
            private decimal salary = 3000.00m;

            // Constructor:
            public Employee(string name, string alias)
            {
                // Use this to qualify the fields, name and alias:
                this.name = name;
                this.alias = alias;
            }
            // Printing method:
            public void printEmployee()
            {
                Console.WriteLine("Name: {0}\nAlias: {1}", name, alias);
                // Passing the object to the CalcTax method by using this:
                Console.WriteLine("Taxes: {0:C}", Tax.CalcTax(this));
            }

            public decimal Salary
            {
                get { return salary; }
            }
        }

        class Tax
        {
            public static decimal CalcTax(Employee E)
            {
                return 0.08m * E.Salary;
            }
        }

        class MainClass
        {
            static void Main()
            {
                // Create objects:
                Employee E1 = new Employee("Mingda Pan", "mpan");

                // Display results:
                E1.printEmployee();
            }
        }
        /*
        Output:
            Name: Mingda Pan
            Alias: mpan
            Taxes: $240.00
         */

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

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

راجع أيضًا:

المرجع

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

base (مرجع #C)

الأساليب (دليل البرمجة لـ #C)

المبادئ

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

موارد أخرى

مرجع C#‎