this (C# Başvurusu)
this
anahtar sözcüğü, sınıfın geçerli örneğine başvurur ve bir uzantı yönteminin ilk parametresinin değiştiricisi olarak da kullanılır.
Not
Bu makalede, sınıf örnekleriyle kullanımı this
ele alınmaktadır. Uzantı yöntemlerinde kullanımı hakkında daha fazla bilgi için bkz . Uzantı Yöntemleri.
Yaygın kullanım this
alanları şunlardır:
Benzer adlara göre gizlenen üyeleri nitelemek için, örneğin:
public class Employee { private string alias; private string name; public Employee(string name, string alias) { // Use this to qualify the members of the class // instead of the constructor parameters. this.name = name; this.alias = alias; } }
Bir nesneyi parametre olarak diğer yöntemlere geçirmek için, örneğin:
CalcTax(this);
Dizin oluşturucuları bildirmek için, örneğin:
public int this[int param] { get { return array[param]; } set { array[param] = value; } }
Statik üye işlevleri, bir nesnenin parçası değil, sınıf düzeyinde mevcut olduğundan işaretçiye sahip this
değildir. Statik bir yöntemde başvuruda this
bulunmak bir hatadır.
Örnek
Bu örnekte, this
sınıf üyelerini Employee
name
nitelemek için kullanılır ve alias
benzer adlar tarafından gizlenir. Ayrıca, bir nesnesini başka bir sınıfa ait olan yöntemine CalcTax
geçirmek için de kullanılır.
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# dili belirtimi
Daha fazla bilgi edinmek için, bkz. C# Dil Belirtimi. Dil belirtimi, C# sözdizimi ve kullanımı için kesin bir kaynaktır.