this() çağrısı
this() ile başka bir yapıcıya zincirleme yapmayı öğrenirsin.
this() ile zincirleme
Bir yapıcı, this(...) sözdizimi ile aynı sınıftaki başka bir yapıcıyı çağırabilir. Buna yapıcı zincirleme (chaining) denir. Tekrarı önler: ortak kod tek bir yapıcıda toplanır.
Örnek: public Point() : this(0, 0) { }. Bu, parametresiz yapıcı çağrıldığında önce iki parametreli Point(0, 0) yapıcısını çalıştırır. this(0, 0) ifadesi gövdeden önce, iki nokta üst üste ile yazılır.
Neden this()?
Overload yapıcıların her biri aynı atamaları tekrar ediyorsa bakım zorlaşır. this() ile en genel yapıcıya yönlendirirsen ortak kod tek yerde durur. Yeni bir alan eklediğinde yalnızca o yapıcıyı güncellersin.
Çalışma sırası şöyledir: önce this(...) ile işaret edilen yapıcı tamamen çalışır, sonra çağıran yapıcının gövdesi çalışır. Böylece temel atamalar her zaman önceden yapılmış olur.
Uygulama Point sınıfında this() ile zincirle
Point sınıfına public int X { get; set; } ve public int Y { get; set; } özelliklerini ekle. İki yapıcı tanımla: birincisi public Point(int x, int y), gövdede X = x; Y = y; ata. İkincisi public Point() : this(0, 0) { } ile birinciye zincirlensin. Main içinde new Point() ile örnek oluştur ve X'i yazdır.
Örnek çözümü göster
this(0, 0) ile başlasın. Main içine Point p = new Point(); Console.WriteLine(p.X); yaz.
Örnek çözüm:
using System;
class Point
{
public int X { get; set; }
public int Y { get; set; }
public Point(int x, int y)
{
X = x;
Y = y;
}
public Point() : this(0, 0)
{
}
}
class Program
{
static void Main()
{
Point p = new Point();
Console.WriteLine(p.X);
}
}
Kendini test et
-
this(0, 0) ne yapar?
public Point() : this(0, 0) { }- Statik bir alan atar
- Bir metot çağırır
- Döngü başlatır
- Başka bir yapıcıyı çağırır
Cevabı göster
Başka bir yapıcıyı çağırır — Doğru. this(0, 0) iki parametreli yapıcıya yönlendirir.
-
this() çağrısını tamamla
public Point() : ____(0, 0) { }Cevabı göster
public Point() : this(0, 0) { } -
this() kullanımını amacına eşle
- : this(0, 0)
- Aynı sınıfa zincirler
- public Point()
- Çağıran yapıcı
- this
- Geçerli sınıf
- (0, 0)
- Aktarılan argümanlar