Aracılığıyla paylaş


out (Genel Değiştirici) (C# Başvurusu)

Genel türde parametreler için out anahtar sözcüğü, type parametresi değişkenle birlikte olduğunu belirtir.Kullanabileceğiniz out generic arabirimlerden ve temsilciler bir anahtar sözcük.

Kovaryans, genel parametre tarafından belirtilenden daha türetilmiş bir tür kullanmanıza olanak tanır.Bu varyant arabirimleri uygulayan sınıflar örtük dönüştürme ve temsilci türleri örtük dönüştürme için sağlar.Kovaryans ve contravariance baþvuru türleri için desteklenir, ancak değer tipleri için desteklenmez.

Değişkenle birlikte tür parametresi içeren bir arabirim yöntemlerini türetilmiş türler tür parametresi tarafından belirtilen süreden daha dönmek etkinleştirir.Örneğin, çünkü içinde.net Framework 4, IEnumerable, t türü değişkenle birlikte, bir nesne atamak için IEnumerabe(Of String) türü bir nesne için IEnumerable(Of Object) herhangi bir özel dönüştürme yöntemleri kullanmadan yazın.

Değişkenle birlikte bir temsilci aynı tür, ancak daha türetilmiş bir genel tür parametresi ile başka bir temsilci atanabilir.

Daha fazla bilgi için bkz. Kovaryans ve Kontravaryans (C# ve Visual Basic).

Örnek

Aşağıdaki örnek, bildirmek, genişletmek ve genel bir değişkenle birlikte arabirim uygulamak gösterilmiştir.Bunu da örtük dönüştürme değişkenle birlikte arabirimini uygulayan sınıflar için nasıl kullanılacağı gösterilmektedir.

// Covariant interface. 
interface ICovariant<out R> { }

// Extending covariant interface. 
interface IExtCovariant<out R> : ICovariant<R> { }

// Implementing covariant interface. 
class Sample<R> : ICovariant<R> { }

class Program
{
    static void Test()
    {
        ICovariant<Object> iobj = new Sample<Object>();
        ICovariant<String> istr = new Sample<String>();

        // You can assign istr to iobj because 
        // the ICovariant interface is covariant.
        iobj = istr;
    }
}

Genel bir arabirim türü parametresi aşağıdaki koşulları karşılayıp karşılamadığını değişkenle birlikte bildirilebilir:

  • Type parametresi arabirim yöntemleri dönüş türü yalnızca kullanılan ve bir tür yöntem bağımsız değişkenleri olarak kullanılmaz.

    [!NOT]

    Bu kuralın tek istisnası yoktur.Değişkenle birlikte arabiriminde karşıtı genel temsilci parametresi varsa, bu temsilci için genel bir tür parametresi olarak değişkenle birlikte türü kullanabilirsiniz.Değişkenle birlikte hakkında daha fazla bilgi ve karşıtı genel Temsilciler, Temsilcilerde Varyans (C# ve Visual Basic) ve İşlev ve Eylem Genel Temsilcileri için Varyans Kullanma (C# ve Visual Basic).

  • Tür parametresi için arabirim yöntemleri genel bir kısıtlama olarak kullanılmaz.

Aşağıdaki örnek, bildirmek, baþlatmak ve bir değişkenle birlikte genel temsilciyi çağırmak gösterilmiştir.Ayrıca, temsilci türleri örtük dönüştürme gösterir.

// Covariant delegate. 
public delegate R DCovariant<out R>();

// Methods that match the delegate signature. 
public static Control SampleControl()
{ return new Control(); }

public static Button SampleButton()
{ return new Button(); }

public void Test()
{            
    // Instantiate the delegates with the methods.
    DCovariant<Control> dControl = SampleControl;
    DCovariant<Button> dButton = SampleButton;

    // You can assign dButton to dControl 
    // because the DCovariant delegate is covariant.
    dControl = dButton;

    // Invoke the delegate.
    dControl(); 
}

Yalnızca bir yöntemin dönüş türü olarak kullanılır ve kullanılan yöntem bağımsız değişkenleri için değil, genel bir temsilci türü değişkenle birlikte olarak bildirilebilir.

C# dil belirtiminin

Daha fazla bilgi edinmek için, bkz. C# Dil Belirtimi. Dil belirtimi, C# sözdizimi ve kullanımı için kesin bir kaynaktır.

Ayrıca bkz.

Başvuru

in (Genel Değiştirici) (C# Başvurusu)

Değiştiriciler (C# Başvurusu)

Kavramlar

Genel Arabirimlerde Varyans (C# ve Visual Basic)