منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
الدرس الرابع عشر : this - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : الأقسام التعليمية - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=90)
+--- قسم : قسم دورات المنتدى (http://vb4arb.com/vb/forumdisplay.php?fid=113)
+---- قسم : دورة .net 2008 . لنبدأ سوياً (http://vb4arb.com/vb/forumdisplay.php?fid=138)
+---- الموضوع : الدرس الرابع عشر : this (/showthread.php?tid=5407)



الدرس الرابع عشر : this - oneyemenweb2 - 08-10-12

منقول من المنتدى القديم
كاتب المقال احمد جمال المشرف العام

بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .

لتوضيح مفهوم الكلمة المحجوزة this في السي شارب ، سنعود إلى المثال في الدرس السابق مباشرة ، والذي قمنا فيه بعمل Constructor بالشكل التالي :

c#:
كود :
public Person(string userfirstname)
        {
            FirstName = userfirstname;
        }

vb.net:
كود :
Public Sub New(ByVal userfirstname As String)
    FirstName = userfirstname
End Sub

لو افترضنا الآن اننا سنقوم بتغيير اسم البارميتر ليكون FirstName بالشكل التالي مثلاً :

C#:
كود :
public Person(string FirstName)
{
FirstName = FirstName;
}

VB.net:
كود :
Public Sub New(ByVal FirstName As String)
    FirstName = FirstName
End Sub

في هذه الحالة للاسف سيفهم الكومبايلر انك تجعل FirstName البارميتر يساوي نفسه ، ولن ينظر إلى FirstName كمتغير ضمن الاوبجكت . لتعريف الكومبايلر بإنك تقصد ان المتغير الموجود في الاوبجكت = البارميتر المرسل سنستخدم الكلمة this في C# أو Me في VB.net والتي ستشير إلى المتغير الموجود في الاوبجكت الحالي :

C#:
كود :
public Person(string FirstName)
{
this.FirstName = FirstName;
}

VB.net:

كود :
Public Sub New(ByVal FirstName As String)
    Me.FirstName = FirstName
End Sub
حتى في الحالة السابقة التي تطرقنا لها في الدرس السابق ، فإن استخدام this سيكون مناسب دائماً ، ابسط اسباب ذلك هو اظهار قائمة بالعناصر الموجودة في الاوبجكت وقت البرمجة منذ اللحظة التي تكتب فيها this.