Koleksiyon Başlatıcıları (Visual Basic)
Koleksiyon başlatıcıları , koleksiyon oluşturmanızı ve ilk değer kümesiyle doldurmanızı sağlayan kısaltılmış bir söz dizimi sağlar. Koleksiyon başlatıcıları, menü seçenekleri veya kategorilerin listesi, ilk sayısal değer kümesi, gün veya ay adları gibi statik dizelerin listesi veya doğrulama için kullanılan durumlar listesi gibi coğrafi konumlar gibi bilinen bir değer kümesinden koleksiyon oluştururken yararlıdır.
Koleksiyonlar hakkında daha fazla bilgi için bkz. Koleksiyonlar.
Anahtar sözcüğünü From
ve ardından küme ayraçlarını (){}
kullanarak bir koleksiyon başlatıcısı tanımlarsınız. Bu, Diziler'de açıklanan dizi değişmez söz dizimine benzer. Aşağıdaki örneklerde koleksiyon oluşturmak için koleksiyon başlatıcılarını kullanmanın çeşitli yolları gösterilir.
' Create an array of type String().
Dim winterMonths = {"December", "January", "February"}
' Create an array of type Integer()
Dim numbers = {1, 2, 3, 4, 5}
' Create a list of menu options. (Requires an extension method
' named Add for List(Of MenuOption)
Dim menuOptions = New List(Of MenuOption) From {{1, "Home"},
{2, "Products"},
{3, "News"},
{4, "Contact Us"}}
Not
C# ayrıca koleksiyon başlatıcıları sağlar. C# koleksiyon başlatıcıları, Visual Basic koleksiyon başlatıcıları ile aynı işlevselliği sağlar. C# koleksiyonu başlatıcıları hakkında daha fazla bilgi için bkz. Nesne ve Koleksiyon Başlatıcıları.
Syntax
Koleksiyon başlatıcı, aşağıdaki kodda gösterildiği gibi anahtar sözcüğünden önce ayraç (){}
içine alınmış virgülle ayrılmış değerlerin From
bir listesinden oluşur.
Dim names As New List(Of String) From {"Christa", "Brian", "Tim"}
veya Dictionary<TKey,TValue>gibi bir koleksiyon oluşturduğunuzda, aşağıdaki kodda gösterildiği gibi List<T> koleksiyon başlatıcıdan önce koleksiyon türünü sağlamanız gerekir.
Public Class AppMenu
Public Property Items As List(Of String) =
New List(Of String) From {"Home", "About", "Contact"}
End Class
Not
Aynı koleksiyon nesnesini başlatmak için hem koleksiyon başlatıcıyı hem de nesne başlatıcıyı birleştiremezsiniz. Bir koleksiyon başlatıcıdaki nesneleri başlatmak için nesne başlatıcıları kullanabilirsiniz.
Koleksiyon Başlatıcı Kullanarak Koleksiyon Oluşturma
Koleksiyon başlatıcı kullanarak bir koleksiyon oluşturduğunuzda, koleksiyon başlatıcıda sağlanan her değer koleksiyonun uygun Add
yöntemine geçirilir. Örneğin, bir koleksiyon başlatıcı kullanarak bir List<T> oluşturursanız, koleksiyon başlatıcıdaki her dize değeri yöntemine Add geçirilir. Koleksiyon başlatıcı kullanarak koleksiyon oluşturmak istiyorsanız, belirtilen tür geçerli bir koleksiyon türü olmalıdır. Geçerli koleksiyon türlerine örnek olarak arabirimi uygulayan IEnumerable<T> veya sınıfı devralan CollectionBase sınıflar verilebilir. Belirtilen tür, aşağıdaki ölçütleri karşılayan bir Add
yöntemi de kullanıma sunmalıdır.
yöntemi,
Add
koleksiyon başlatıcısının çağrıldığı kapsamdan kullanılabilir olmalıdır. KoleksiyonunAdd
genel olmayan yöntemlerine erişilebilen bir senaryoda koleksiyon başlatıcısını kullanıyorsanız yöntemin genel olması gerekmez.yöntemi,
Add
koleksiyon sınıfının bir örnek üyesi veyaShared
üyesi ya da bir uzantı yöntemi olmalıdır.Add
Aşırı yükleme çözümleme kurallarına göre koleksiyon başlatıcıda sağlanan türlere göre eşleştirilebilen bir yöntem bulunmalıdır.
Örneğin, aşağıdaki kod örneğinde koleksiyon başlatıcısı kullanarak bir koleksiyonun nasıl oluşturulacağı List(Of Customer)
gösterilmektedir. Kod çalıştırıldığında, her Customer
nesne genel listenin Add(Customer)
yöntemine geçirilir.
Dim customers = New List(Of Customer) From
{
New Customer("City Power & Light", "http://www.cpandl.com/"),
New Customer("Wide World Importers", "http://www.wideworldimporters.com/"),
New Customer("Lucerne Publishing", "http://www.lucernepublishing.com/")
}
Aşağıdaki kod örneği, koleksiyon başlatıcısı kullanmayan eşdeğer kodu gösterir.
Dim customers = New List(Of Customer)
customers.Add(New Customer("City Power & Light", "http://www.cpandl.com/"))
customers.Add(New Customer("Wide World Importers", "http://www.wideworldimporters.com/"))
customers.Add(New Customer("Lucerne Publishing", "http://www.lucernepublishing.com/"))
Koleksiyonun nesnesi için Customer
oluşturucuyla eşleşen parametreleri olan bir Add
yöntemi varsa, sonraki bölümde açıklandığı gibi, yöntemin Add
parametre değerlerini koleksiyon başlatıcıları içinde iç içe yerleştirebilirsiniz. Koleksiyonun böyle bir Add
yöntemi yoksa, uzantı yöntemi olarak bir yöntem oluşturabilirsiniz. Bir koleksiyon için uzantı yöntemi olarak yöntem oluşturma Add
örneği için bkz . Nasıl yapılır: Koleksiyon Başlatıcısı Tarafından Kullanılan Uzantı Ekleme Yöntemi Oluşturma. Koleksiyon başlatıcı ile kullanılabilecek özel bir koleksiyon oluşturma örneği için bkz . Nasıl yapılır: Koleksiyon Başlatıcısı Tarafından Kullanılan Koleksiyon Oluşturma.
Koleksiyon Başlatıcıları İç İçe Yerleştirme
Oluşturulan koleksiyon için bir yöntemin belirli bir aşırı yüklemesini tanımlamak için değerleri koleksiyon Add
başlatıcısına iç içe yerleştirebilirsiniz. Yöntemine Add
geçirilen değerler, dizi değişmez değeri veya koleksiyon başlatıcıda yapacağınız gibi virgülle ayrılıp ayraç (){}
içine alınmalıdır.
İç içe değerleri kullanarak bir koleksiyon oluşturduğunuzda, iç içe değer listesinin her öğesi, öğe türleriyle eşleşen yöntemine Add
bağımsız değişken olarak geçirilir. Örneğin, aşağıdaki kod örneği anahtarların türünde ve değerlerin türünde Integer
olduğu String
bir Dictionary<TKey,TValue> oluşturur. İç içe değer listelerinin her biri için yöntemiyle AddDictionary
eşleştirilir.
Dim days = New Dictionary(Of Integer, String) From
{{0, "Sunday"}, {1, "Monday"}}
Önceki kod örneği aşağıdaki kodla eşdeğerdir.
Dim days = New Dictionary(Of Integer, String)
days.Add(0, "Sunday")
days.Add(1, "Monday")
Yalnızca ilk iç içe yerleştirme düzeyindeki iç içe değer listeleri koleksiyon türü için yöntemine Add
gönderilir. daha derin iç içe yerleştirme düzeyleri dizi değişmez değerleri olarak kabul edilir ve iç içe değer listeleri herhangi bir koleksiyonun yöntemiyle eşleşmez Add
.
İlgili Konular
Başlık | Açıklama |
---|---|
Nasıl yapılır: Öğe Başlatıcısı Tarafından Kullanılan Bir Uzantı Ekleme Yöntemi Oluşturma | Bir koleksiyonu bir koleksiyon başlatıcısından alınan değerlerle doldurmak için kullanılabilecek adlı Add bir uzantı yönteminin nasıl oluşturulacağını gösterir. |
Nasıl yapılır: Öğe Başlatıcısı Tarafından Kullanılan Bir Koleksiyon Oluşturma | uygulayan IEnumerable bir koleksiyon sınıfına bir Add yöntem ekleyerek koleksiyon başlatıcısının kullanımını etkinleştirmeyi gösterir. |
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin