Type.GetGenericArguments Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Kapalı bir genel türün Type tür bağımsız değişkenlerini veya genel tür tanımının tür parametrelerini temsil eden bir nesne dizisi döndürür.
public:
virtual cli::array <Type ^> ^ GetGenericArguments();
public virtual Type[] GetGenericArguments();
abstract member GetGenericArguments : unit -> Type[]
override this.GetGenericArguments : unit -> Type[]
Public Overridable Function GetGenericArguments () As Type()
Döndürülenler
Genel bir türün Type tür bağımsız değişkenlerini temsil eden bir nesne dizisi. Geçerli tür genel bir tür değilse boş bir dizi döndürür.
Özel durumlar
Çağrılan yöntem temel sınıfta desteklenmez. Türetilmiş sınıfların bir uygulama sağlaması gerekir.
Örnekler
Aşağıdaki kod örneğinde GetGenericArguments , bir türün tür bağımsız değişkenlerini ve genel tür tanımının tür parametrelerini görüntülemek için yöntemi kullanılır.
Bu kod örneği, özelliği için IsGenericTypeDefinition sağlanan daha büyük bir örneğin parçasıdır. Örnek çıktı için daha büyük örneğe bakın.
if (t.IsGenericType)
{
// If this is a generic type, display the type arguments.
//
Type[] typeArguments = t.GetGenericArguments();
Console.WriteLine("\tList type arguments ({0}):",
typeArguments.Length);
foreach (Type tParam in typeArguments)
{
// If this is a type parameter, display its
// position.
//
if (tParam.IsGenericParameter)
{
Console.WriteLine("\t\t{0}\t(unassigned - parameter position {1})",
tParam,
tParam.GenericParameterPosition);
}
else
{
Console.WriteLine("\t\t{0}", tParam);
}
}
}
if t.IsGenericType then
// If this is a generic type, display the type arguments.
let typeArguments = t.GetGenericArguments()
printfn $"\tList type arguments ({typeArguments.Length}):"
for tParam in typeArguments do
// If this is a type parameter, display its
// position.
if tParam.IsGenericParameter then
printfn $"\t\t{tParam}\t(unassigned - parameter position {tParam.GenericParameterPosition})"
else
printfn $"\t\t{tParam}"
If t.IsGenericType Then
' If this is a generic type, display the type arguments.
'
Dim typeArguments As Type() = t.GetGenericArguments()
Console.WriteLine(vbTab & "List type arguments (" _
& typeArguments.Length & "):")
For Each tParam As Type In typeArguments
' If this is a type parameter, display its position.
'
If tParam.IsGenericParameter Then
Console.WriteLine(vbTab & vbTab & tParam.ToString() _
& vbTab & "(unassigned - parameter position " _
& tParam.GenericParameterPosition & ")")
Else
Console.WriteLine(vbTab & vbTab & tParam.ToString())
End If
Next tParam
End If
Açıklamalar
Dizi öğeleri, genel tür için tür bağımsız değişkenleri listesinde göründükleri sırayla döndürülür.
Geçerli tür kapalı bir yapılı türse (yani özelliği ContainsGenericParameters döndürür
false), yöntemi tarafından GetGenericArguments döndürülen dizi, genel tür tanımının genel tür parametrelerine atanmış türleri içerir.Geçerli tür genel bir tür tanımıysa, dizi tür parametrelerini içerir.
Geçerli tür, genel türleri veya yöntemleri kapsayan tüm tür parametrelerine ve tür parametrelerine atanmamış açık bir türse (yani özellik ContainsGenericParameters döndürür
true), dizi hem tür hem de tür parametrelerini içerir. IsGenericParameter Ayırt etmek için özelliğini kullanın. Bu senaryonun bir gösterimi için özelliği için kod örneğine ContainsGenericParameters bakın.
Genel yansımada kullanılan terimlere ilişkin sabit koşulların IsGenericType listesi için özellik açıklamalarına bakın.