Aracılığıyla paylaş


Genel Temsilciler (C# Programlama Kılavuzu)

A temsilci , kendi tür parametreleri tanımlayabilirsiniz.Başvurular genel temsilcisi gibi ne zaman kapalı oluşturulmuş türü oluşturmak için tür bağımsız değişkeni belirtebilirsiniz kodu bir generic sýnýf başlatmasını veya aşağıdaki örnekte gösterildiği gibi bir generic yöntem çağırma:

public delegate void Del<T>(T item);
public static void Notify(int i) { }

Del<int> m1 = new Del<int>(Notify);

C# 2.0 sürümü beton gibi genel temsilci türleri için geçerlidir ve bu Basitleştirilmiş sözdizimini içeren önceki satırı yazma sağlar yöntemi Grup dönüştürme adı verilen yeni bir özellik vardır:

Del<int> m2 = Notify;

Generic bir sýnýf içinde tanımlanan Temsilciler generic sýnýfýn tür parametreleri, sınıf yöntemleri aynı şekilde kullanabilirsiniz.

class Stack<T>
{
    T[] items;
    int index;

    public delegate void StackDelegate(T[] items);
}

Temsilci başvuran kod içeren sınıf türü bağımsız değişkeni şu şekilde belirtmelisiniz:

private static void DoWork(float[] items) { }

public static void TestStack()
{
    Stack<float> s = new Stack<float>();
    Stack<float>.StackDelegate d = DoWork;
}

Genel Temsilciler olayları çünkü gönderici bağımsız kesinlikle yazılan ve birinden diğerine çevirmek artık sahip tipik tasarım deseni temel alan tanımlarken özellikle yararlı olan Object.

delegate void StackEventHandler<T, U>(T sender, U eventArgs);

class Stack<T>
{
    public class StackEventArgs : System.EventArgs { }
    public event StackEventHandler<Stack<T>, StackEventArgs> stackEvent;

    protected virtual void OnStackChanged(StackEventArgs a)
    {
        stackEvent(this, a);
    }
}

class SampleClass
{
    public void HandleStackChange<T>(Stack<T> stack, Stack<T>.StackEventArgs args) { }
}

public static void Test()
{
    Stack<double> s = new Stack<double>();
    SampleClass o = new SampleClass();
    s.stackEvent += o.HandleStackChange;
}

Ayrıca bkz.

Başvuru

Genel Türlere Giriş (C# Programlama Kılavuzu)

Genel Yöntemler (C# Programlama Kılavuzu)

Genel Sınıflar (C# Programlama Kılavuzu)

Genel Arabirimler (C# Programlama Kılavuzu)

Temsilciler (C# Programlama Kılavuzu)

System.Collections.Generic

Kavramlar

C# Programlama Kılavuzu

Diğer Kaynaklar

.NET Framework'te Genel Türler