Dizin Oluşturucular (C# Programlama Kılavuzu)
Dizinler, bir sınıf veya yapının örneklerinin aynı diziler gibi dizinesine izin verir. Dizine alınan değer, açıkça bir tür veya örnek üyesi belirtmeden ayarlandı veya alınamadı. Dizinciler, erişimcilerinin parametre almaları dışında özelliklere benzer.
Aşağıdaki örnek, değerleri atamak ve almak için basit alma ve ayarlama erişimci yöntemleri ile genel bir sınıf tanımlar. sınıfı, Program dizeleri depolamak için bu sınıfın bir örneğini oluşturur.
using System;
class SampleCollection<T>
{
// Declare an array to store the data elements.
private T[] arr = new T[100];
// Define the indexer to allow client code to use [] notation.
public T this[int i]
{
get { return arr[i]; }
set { arr[i] = value; }
}
}
class Program
{
static void Main()
{
var stringCollection = new SampleCollection<string>();
stringCollection[0] = "Hello, World";
Console.WriteLine(stringCollection[0]);
}
}
// The example displays the following output:
// Hello, World.
Not
Daha fazla örnek için bkz. İlgili Bölümler.
İfade Gövdesi Tanımları
Bir dizin oluşturma veya ayarlama erişimcisinde genellikle bir değer döndüren veya ayarlanan tek bir deyimden oluşur. İfadeye sahip üyeler, bu senaryoyu desteklemek için basitleştirilmiş bir söz dizimi sağlar. C# 6'dan başlayarak, aşağıdaki örnekte de olduğu gibi salt okunur bir dizin oluşturma, ifadeye göre bir üye olarak uygulanıyor.
using System;
class SampleCollection<T>
{
// Declare an array to store the data elements.
private T[] arr = new T[100];
int nextIndex = 0;
// Define the indexer to allow client code to use [] notation.
public T this[int i] => arr[i];
public void Add(T value)
{
if (nextIndex >= arr.Length)
throw new IndexOutOfRangeException($"The collection can hold only {arr.Length} elements.");
arr[nextIndex++] = value;
}
}
class Program
{
static void Main()
{
var stringCollection = new SampleCollection<string>();
stringCollection.Add("Hello, World");
System.Console.WriteLine(stringCollection[0]);
}
}
// The example displays the following output:
// Hello, World.
ifadesinin => gövdeyi tanıtarak anahtar sözcüğünün get kullanılmay olduğunu unutmayın.
C# 7.0'dan başlayarak, hem get hem de set erişimcisi ifadeye uygun üyeler olarak uygulanır. Bu durumda, hem hem get de set anahtar sözcükleri kullanılmalıdır. Örnek:
using System;
class SampleCollection<T>
{
// Declare an array to store the data elements.
private T[] arr = new T[100];
// Define the indexer to allow client code to use [] notation.
public T this[int i]
{
get => arr[i];
set => arr[i] = value;
}
}
class Program
{
static void Main()
{
var stringCollection = new SampleCollection<string>();
stringCollection[0] = "Hello, World.";
Console.WriteLine(stringCollection[0]);
}
}
// The example displays the following output:
// Hello, World.
Dizin Oluşturuculara Genel Bakış
Dizinler, nesnelerin dizilere benzer şekilde dizine ednsini sağlar.
Erişimci
getbir değer döndürür. Erişimcisetbir değer atar.Bu anahtar sözcük, diziniciyi tanımlamak için kullanılır.
value anahtar sözcüğü, erişimci tarafından atanan değeri tanımlamak için
setkullanılır.Dizin oluşturmaların bir tamsayı değeriyle dizine sahip olması gerek yoktur; Belirli bir arama mekanizmasının nasıl tanımladığınız size bağlı.
Dizinler aşırı yüklenmiş olabilir.
Dizin oluşturma, örneğin iki boyutlu bir diziye erişirken birden fazla resmi parametreye sahip olabilir.
İlgili Bölümler
C# Dil Belirtimi
Daha fazla bilgi için bkz. C# Dil Belirtimleri'nin dizinleri. Dil belirtimi, C# sözdizimi ve kullanımı için kesin bir kaynaktır.