Type.DeclaringType 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
현재 중첩 형식 또는 제네릭 형식 매개 변수를 선언하는 형식을 가져옵니다.
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
속성 값
현재 형식이 중첩 형식이면 바깥쪽 형식을 나타내고 현재 형식이 제네릭 형식의 형식 매개 변수이면 제네릭 형식 정의를 나타내며 현재 형식이 제네릭 메서드의 형식 매개 변수이면 제네릭 메서드를 선언하는 형식을 나타내는 Type 개체이고, 그렇지 않으면 null
입니다.
구현
예제
이 예제에서는 파생 클래스에 있는 메서드의 선언 형식을 표시 합니다.
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
설명
현재 Type 개체가 제네릭 형식의 형식 매개 변수를 나타내는 경우이 속성은 제네릭 형식 정의를 반환 합니다.
현재 Type 개체가 제네릭 메서드의 형식 매개 변수를 나타내는 경우이 속성은 제네릭 메서드 정의가 포함 된 형식을 반환 합니다. 제네릭 형식인 경우 제네릭 형식 정의가 반환 됩니다. 즉, 다음 코드는 제네릭 메서드를 포함 하는 제네릭 클래스의 제네릭 형식 정의를 반환 합니다 List<T> ConvertAll .
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
현재이 Type 제네릭 형식 또는 제네릭 메서드 정의의 형식 매개 변수를 나타내는 경우 및 속성은 제네릭 DeclaringType 형식 DeclaringMethod 매개 변수가 원래 정의 된 제네릭 형식 정의 또는 제네릭 메서드 정의를 식별 합니다.
DeclaringMethod속성이 MethodInfo MethodInfo 제네릭 메서드 정의를 나타내는를 반환 하 고 현재 Type 개체가 제네릭 메서드 정의의 형식 매개 변수를 나타냅니다.
DeclaringMethod속성이을 반환 하는 경우
null
DeclaringType 속성은 항상 Type 제네릭 형식 정의를 나타내는 개체를 반환 하 고 현재 Type 개체는 해당 제네릭 형식 정의의 형식 매개 변수를 나타냅니다.속성이를 DeclaringType throw 하는 형식에서 속성을 가져옵니다 IsGenericParameter
false
InvalidOperationException .