Type.DeclaringType Özellik
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.
Geçerli iç içe türü veya genel tür parametresini bildiren türü alır.
public:
abstract property Type ^ DeclaringType { Type ^ get(); };
public:
virtual property Type ^ DeclaringType { Type ^ get(); };
public abstract Type DeclaringType { get; }
public override Type? DeclaringType { get; }
public override Type DeclaringType { get; }
member this.DeclaringType : Type
Public MustOverride ReadOnly Property DeclaringType As Type
Public Overrides ReadOnly Property DeclaringType As Type
Özellik Değeri
Geçerli tür iç içe geçmiş bir türse kapsayan türü temsil eden bir nesne; geçerli tür genel bir türün tür parametresi ise genel tür tanımı; ya da geçerli tür genel bir yöntemin tür parametresi ise genel yöntemi bildiren tür; aksi takdirde Type null
, .
Uygulamalar
Örnekler
Bu örnek, türetilmiş bir sınıftaki bir yöntemin bildirim türünü görüntüler.
using namespace System;
using namespace System::Reflection;
public ref class dtype abstract
{
public:
ref class MyClassA abstract
{
public:
virtual int m() = 0;
};
ref class MyClassB abstract: public MyClassA{};
};
int main()
{
Console::WriteLine( "The declaring type of m is {0}.", dtype::MyClassB::typeid->GetMethod( "m" )->DeclaringType );
}
/* The example produces the following output:
The declaring type of m is dtype+MyClassA.
*/
using System;
using System.Reflection;
public abstract class dtype
{
public abstract class MyClassA
{
public abstract int m();
}
public abstract class MyClassB : MyClassA
{
}
public static void Main(string[] args)
{
Console.WriteLine("The declaring type of m is {0}.",
typeof(MyClassB).GetMethod("m").DeclaringType);
}
}
/* The example produces the following output:
The declaring type of m is dtype+MyClassA.
*/
Imports System.Reflection
Public MustInherit Class dtype
Public MustInherit Class MyClassA
Public MustOverride Function m() As Integer
End Class
Public MustInherit Class MyClassB
Inherits MyClassA
End Class
Public Shared Sub Main()
Console.WriteLine("The declaring type of m is {0}.", _
GetType(MyClassB).GetMethod("m").DeclaringType)
End Sub
End Class
Açıklamalar
Geçerli nesne Type genel bir tür parametresini temsil ediyorsa, bu özellik genel tür tanımını döndürür.
Geçerli nesne Type genel bir yöntemin tür parametresini temsil ediyorsa, bu özellik genel yöntem tanımını içeren türü döndürür. Tür genel ise, genel tür tanımı döndürülür. Başka bir ifadeyle, aşağıdaki kod genel yöntemi içeren List<T> genel sınıfın genel tür tanımını ConvertAll döndürür:
Type^ t = List<String^>::typeid->GetMethod("ConvertAll")->GetGenericArguments()[0]->DeclaringType;
Type t = typeof(List<string>).GetMethod("ConvertAll").GetGenericArguments()[0].DeclaringType;
Dim t As Type = GetType(List(Of String)).GetMethod("ConvertAll").GetGenericArguments()(0).DeclaringType
Geçerli, genel bir türün veya genel yöntemin tanımında bir tür parametresini temsil ediyorsa ve özellikleri, genel tür parametresinin başlangıçta tanımlandığı genel tür tanımını veya genel yöntem Type DeclaringType tanımını DeclaringMethod tanımlar:
özelliği genel bir yöntem tanımını temsil eden bir döndürürse ve geçerli nesne bu genel yöntem DeclaringMethod MethodInfo MethodInfo Type tanımının tür parametresini temsil eder.
özelliği döndürürse, özellik her zaman genel tür tanımını temsil eden bir nesne döndürür ve geçerli nesne bu genel tür tanımının tür DeclaringMethod
null
DeclaringType Type Type parametresini temsil eder.özelliği DeclaringType olan bir tür üzerinde IsGenericParameter özelliğini alma
false
bir . InvalidOperationException