this საკვანძო სიტყვა

მეთოდს გამოძახებისას ავტომატურად გადაეცემა არაცხადი არგუმენტი, რომელიც წარმოადგენს გამომძახებელ ობიექტზე მიმართვას. ამ მიმართვას ეწოდება this. იმის გასაგებად თუ როგორ მუშაობს this მიმართვა, განვიხილოთ პროგრამა, რომელშიც იქმნება Axarisxeba კლასი. ის განკუთვნილია რიცხვის ხარისხის გამოსათვლელად.

//
// პროგრამაში ხარისხის გამოთვლა სრულდება კონსტრუქტორის კოდში class Axarisxeba
{
public double wiladi; public int mteli; public double shedegi; public Axarisxeba(double par_ricxvi, int par_xarisxi)
{
wiladi = par_ricxvi; mteli = par_xarisxi; shedegi = 1;

if ( par_xarisxi == 0 ) return; for ( ; par_xarisxi > 0; par_xarisxi– ) shedegi *= wiladi;
}
public double xarisxis_dabruneba()
{
return shedegi;
}
}
private void button1_Click(object sender, EventArgs e)
{
double ricxvi = Convert.ToDouble(textBox1.Text); int xarisxi = Convert.ToInt32(textBox2.Text);
Axarisxeba obieqti = new Axarisxeba(ricxvi, xarisxi);

label1.Text = obieqti.wiladi.ToString() + ” ხარისხად ” + obieqti.mteli.ToString() + ” არის ” + obieqti.xarisxis_dabruneba().ToString();
}

როგორც ვიცით მეთოდის ფარგლებში კლასის სხვა წევრებთან მიმართვა შეძლება განხორციელდეს ობიექტის ან კლასის სახელის მითითების გარეშე, ე.ი. უშუალოდ. შედეგად, xarisxis_dabruneba() მეთოდის შიგნით return shedegi; ოპერატორის შესრულების შედეგად გაიცემა shedegi ცვლადის მნიშვნელობა, რომელიც ასოცირებულია გამომძახებელ ობიექტთან. მაგრამ ეს ოპერატორი შეგვიძლია ასეც ჩავწეროთ:
return this.shedegi; აქ this მიმართვა მიუთითებს იმ ობიექტზე, რომელსაც ეკუთვნის xarisxis_dabruneba() მეთოდი. this.shedegi ცვლადი არის მოცემული ობიექტის shedegi ცვლადის ასლი. მაგალითად, თუ xarisxis_dabruneba() მეთოდი გამოძახებულია x ობიექტისთვის, მაშინ this მიმართვა მიუთითებს x ობიექტზე. ოპერატორის ჩაწერა this სიტყვის გარეშე არის ჩაწერის შემოკლებული ფორმა.
C# ენის სინტაქსი იძლევა ერთნაირი სახელების გამოყენების საშუალებას პარამეტრებისა და ლოკალური ცვლადებისათვის. ასეთ შემთხვევაში, პარამეტრი მალავს ლოკალურ ცვლადს და მასთან მიმართვა შესაძლებელია მხოლოდ this მიმართვის გამოყენებით. ქვემოთ მოყვანილ პროგრამაში ხდება დამალულ ცვლადთან მიმართვა this სიტყვის გამოყენებით.

//
// პროგრამაში ხდება დამალულ ცვლადთან მიმართვის დემონსტრირება class Axarisxeba
{
public double ricxvi; public int xarisxi; public double shedegi;
public Axarisxeba(double ricxvi, int xarisxi)
{
this.ricxvi = ricxvi; // ობიექტის this.ricxvi ცვლადს ენიჭება ricxvi პარამეტრი
this.xarisxi = xarisxi; // ობიექტის this.xarisxi ცვლადს ენიჭება
shedegi = 1; // xarisxi პარამეტრი

if (this.xarisxi == 0 ) return;
for ( ; this.xarisxi > 0; this.xarisxi– ) shedegi *= this.ricxvi;
}
}
private void button1_Click(object sender, System.EventArgs e)
{
double ricxvi1 = double.Parse(textBox1.Text); int xarisxi1 = int.Parse(textBox2.Text);
Axarisxeba obieqti = new Axarisxeba(ricxvi1, xarisxi1); label1.Text = obieqti.shedegi.ToString();
}

Axarisxeba() კონსტრუქტორის ამ ვერსიაში პარამეტრების სახელები და ობიექტის ცვლადების სახელები ერთნაირია, ამიტომ ობიექტის ცვლადები იქნება დამალული. this მიმართვის გამოყენებით შესაძლებელი ხდება მათთან მიმართვა.