Type.GetInterfaces Yöntem

Tanım

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli Typetarafından uygulanan veya devralınan tüm arabirimleri alır.

public:
 abstract cli::array <Type ^> ^ GetInterfaces();
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.Interfaces)]
public abstract Type[] GetInterfaces();
public abstract Type[] GetInterfaces();
[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.Interfaces)>]
abstract member GetInterfaces : unit -> Type[]
abstract member GetInterfaces : unit -> Type[]
Public MustOverride Function GetInterfaces () As Type()

Döndürülenler

Type[]

Geçerli Typetarafından uygulanan veya devralınan tüm arabirimleri temsil eden bir nesne dizisiType.

-veya-

Geçerli Typetarafından hiçbir arabirim uygulanmadıysa veya devralınmazsa türünde Typeboş bir dizi.

Uygulamalar

Öznitelikler

Özel durumlar

Statik başlatıcı çağrılır ve bir özel durum oluşturur.

Örnekler

Aşağıdaki örnek, belirtilen sınıfın türünü alır ve türün uyguladığı veya devraldığı tüm arabirimleri görüntüler. Visual Basic örneğini derlemek için aşağıdaki derleyici komutlarını kullanın:

vbc type_getinterfaces1.vb /r:System.Web.dll /r:System.dll

using System;
using System.Collections.Generic;

public class Example
{
    static void Main()
    {
        Console.WriteLine("\r\nInterfaces implemented by Dictionary<int, string>:\r\n");

        foreach (Type tinterface in typeof(Dictionary<int, string>).GetInterfaces())
        {
            Console.WriteLine(tinterface.ToString());
        }

        //Console.ReadLine()      // Uncomment this line for Visual Studio.
    }
}

/* This example produces output similar to the following:

Interfaces implemented by Dictionary<int, string>:

System.Collections.Generic.IDictionary`2[System.Int32,System.String]
System.Collections.Generic.ICollection`1[System.Collections.Generic.KeyValuePair`2[System.Int32,System.String]]
System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.Int32,System.String]]
System.Collection.IEnumerable
System.Collection.IDictionary
System.Collection.ICollection
System.Runtime.Serialization.ISerializable
System.Runtime.Serialization.IDeserializationCallback
 */
open System.Collections.Generic

printfn "\nInterfaces implemented by Dictionary<int, string>:\n"

for tinterface in typeof<Dictionary<int, string>>.GetInterfaces() do
    printfn $"{tinterface}"

(* This example produces output similar to the following:

Interfaces implemented by Dictionary<int, string>:

System.Collections.Generic.IDictionary`2[System.Int32,System.String]
System.Collections.Generic.ICollection`1[System.Collections.Generic.KeyValuePair`2[System.Int32,System.String]]
System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.Int32,System.String]]
System.Collection.IEnumerable
System.Collection.IDictionary
System.Collection.ICollection
System.Runtime.Serialization.ISerializable
System.Runtime.Serialization.IDeserializationCallback
 *)
Imports System.Collections.Generic

Public Class Example

    Shared Sub Main()

        Console.WriteLine(vbCrLf & _
            "Interfaces implemented by Dictionary(Of Integer, String):" & vbCrLf)
        
        For Each tinterface As Type In GetType(Dictionary(Of Integer, String)).GetInterfaces()

            Console.WriteLine(tinterface.ToString())

        Next

        'Console.ReadLine()      ' Uncomment this line for Visual Studio. 
    End Sub
End Class

' This example produces output similar to the following:
'
'Interfaces implemented by Dictionary(Of Integer, String):
'System.Collections.Generic.IDictionary`2[System.Int32,System.String]
'System.Collections.Generic.ICollection`1[System.Collections.Generic.KeyValuePair`2[System.Int32,System.String]]
'System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.Int32,System.String]]
'System.Collection.IEnumerable
'System.Collection.IDictionary
'System.Collection.ICollection
'System.Runtime.Serialization.ISerializable
'System.Runtime.Serialization.IDeserializationCallback

Açıklamalar

.NET 6 ve önceki sürümlerde, GetInterfaces yöntemi arabirimleri alfabetik veya bildirim sırası gibi belirli bir sırada döndürmez. Kodunuz arabirimlerin döndürülme sırasına bağlı olmamalıdır, çünkü bu sıra değişir. Ancak, .NET 7'den başlayarak sıralama, derlemedeki meta veri sıralamasını temel alarak belirleyicidir.

Geçerli Type , yapılandırılmış bir genel türü temsil ederse, bu yöntem nesneleri uygun tür bağımsız değişkenleriyle değiştirilen tür parametreleriyle döndürür Type .

Geçerli Type , genel bir tür veya genel yöntemin tanımında tür parametresini temsil ederse, bu yöntem arabirim kısıtlamalarını ve sınıf veya arabirim kısıtlamalarından devralınan arabirimleri arar.

Şunlara uygulanır

Ayrıca bkz.