Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.
Uyarı
Bu makalede, geçerli üyedeki alıcı örneğine başvurmak için kullanımı this ele alınmaktadır. Uzantı yöntemlerinde kullanımı hakkında daha fazla bilgi için anahtar sözcüğüne extension bakın.
thisyaygın kullanımları ş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);Örneğin, dizinleyiciler bildirmek için:
public int this[int param] { get => 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.
Bu örnekte parametreleri nameve alias aynı adlara sahip alanları gizler. anahtar sözcüğü bu this değişkenleri sınıf üyesi olarak Employee niteler.
this anahtar sözcüğü, başka bir sınıfa ait olan yönteminin CalcTaxnesnesini de belirtir.
class Employee
{
private string name;
private string alias;
// 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: {name}
Alias: {alias}
""");
// Passing the object to the CalcTax method by using this:
Console.WriteLine($"Taxes: {Tax.CalcTax(this):C}");
}
public decimal Salary { get; } = 3000.00m;
}
class Tax
{
public static decimal CalcTax(Employee E)=> 0.08m * E.Salary;
}
class Program
{
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# dil belirtimi
Daha fazla bilgi için bkz. C# Dil Belirtimi. Dil belirtimi, C# söz dizimi ve kullanımı için kesin kaynaktır.