29 Ocak 2018 Pazartesi

Initializer List

1. Object Initializer List Nedir?
Nesne kurulduktan sonra bazı Field'lara değer atayabilmek için kullanılır.

- Object Initializer List parameterless constructor'a sahip nesnelerde kullanılır.
- Parameterless constructor'ın () parentezleri yazılmayabilir.
- Yani Object Initializer List sadece kodlamayı kolaylaştıran bir yapı.

Örnek
Şöyle bir sınıfımız olsun
class Customer
{
    public string name;
    public string ID {get; set;}
}
Sınıfı kolaylıkla ilklendirmek için şöyle yaparız.
Customer c= new Customer {name= "John", ID="ABC"};
Object Initializer List'ten önce nesnenin mutlaka uygun bir constructor metodu çağrılır.

Dolayısıyla ben initializer list kullanımını - aslında derleyici başka bir kod üretse bile - aşağıdaki gibi hatırlamayı tercih ettim.
var dogA = new Dog ("Fido");
var dogA.Age = 12;

var dogB = new Dog ("Not Fido") { Age = 7 };
Örnek
Parameterless constructor'ın () parentezleri yazılmayabilir. Şöyle yaparız.
// Assuming cat has a constructor with no parameters
Cat cat = new Cat { Age = 10, Name = "Fluffy" };
Cat cat = new Cat() { Age = 10, Name = "Fluffy" };
Bu nesneleri listeye eklemek için şöyle yaparız.
List<Cat> cats = new List<Cat>()
{
    new Cat(){ Name = "Sylvester", Age=8 }, // Add sylvester to the List
    new Cat(){ Name = "Whiskers", Age=2 } // And Whiskers too
};
Şu kod ile aynıdır.
List<Cat> cats = new List<Cat>
{
    new Cat { Name = "Sylvester", Age=8 }, // Add sylvester to the List
    new Cat { Name = "Whiskers", Age=2 } // And Whiskers too
};
2. Collection Initializer List Nedir
Örnek
Şöyle yaparız.
List<string> myList = new List<string>() { "one", "two", "three" };
Örnek
Boş Collection Initializer List kullanılabilir. Şöyle yaparız.
List<string> myList = new List<string>() { };
Boş Collection Initializer List kullanırken constructor için kullanılan parantezler yazılmasa da olur. Şöyle yaparız.
List<string> myList = new List<string> { };
Örnek
Diziler için şöyle yaparız.
var myArray = new [] { "one", "two", "three" };
Örnek
Çok boyutlu diziler için şöyle yaparız.
var myArray = new string [,] { { "a1", "b1" }, { "a2", "b2" }, ... };

Hiç yorum yok:

Yorum Gönder