Type.DeclaringType Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan jenis yang mendeklarasikan jenis berlapis saat ini atau parameter jenis generik.
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
Nilai Properti
Objek Type yang mewakili jenis penutup, jika jenis saat ini adalah jenis berlapis; atau definisi jenis generik, jika jenis saat ini adalah parameter jenis dari jenis generik; atau jenis yang menyatakan metode generik, jika jenis saat ini adalah parameter jenis dari metode generik; jika tidak, null
.
Penerapan
Contoh
Contoh ini menampilkan jenis deklarasikan metode dalam kelas turunan.
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.
*/
[<AbstractClass>]
type MyClassA() =
abstract m: unit -> int
[<AbstractClass>]
type MyClassB() =
inherit MyClassA()
printfn $"""The declaring type of m is {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
Keterangan
Jika objek saat ini Type mewakili parameter jenis jenis generik, properti ini mengembalikan definisi jenis generik.
Jika objek saat ini Type mewakili parameter jenis metode generik, properti ini mengembalikan jenis yang berisi definisi metode generik. Jika jenisnya generik, definisi jenis generik dikembalikan. Artinya, kode berikut mengembalikan definisi jenis generik dari List<T> kelas generik, yang berisi ConvertAll metode generik:
Type^ t = List<String^>::typeid->GetMethod("ConvertAll")->GetGenericArguments()[0]->DeclaringType;
Type t = typeof(List<string>).GetMethod("ConvertAll").GetGenericArguments()[0].DeclaringType;
let t = typeof<ResizeArray<string>>.GetMethod("ConvertAll").GetGenericArguments().[0].DeclaringType
Dim t As Type = GetType(List(Of String)).GetMethod("ConvertAll").GetGenericArguments()(0).DeclaringType
Jika saat ini Type mewakili parameter jenis dalam definisi jenis generik atau metode generik, DeclaringType properti dan DeclaringMethod mengidentifikasi definisi jenis generik atau definisi metode generik di mana parameter jenis generik awalnya ditentukan:
DeclaringMethod Jika properti mengembalikan MethodInfo, yang MethodInfo mewakili definisi metode generik, dan objek saat ini Type mewakili parameter jenis dari definisi metode generik tersebut.
DeclaringMethod Jika properti mengembalikan
null
, maka DeclaringType properti selalu mengembalikan objek yang Type mewakili definisi jenis generik, dan objek saat ini Type mewakili parameter jenis definisi jenis generik tersebut.DeclaringType Mendapatkan properti pada jenis yang propertinya IsGenericParameter
false
melempar InvalidOperationException.