MethodInfo.IsGenericMethodDefinition 속성

정의

현재 MethodInfo가 제네릭 메서드 정의를 나타내는지 여부를 표시하는 값을 가져옵니다.Gets a value indicating whether the current MethodInfo represents the definition of a generic method.

public:
 virtual property bool IsGenericMethodDefinition { bool get(); };
public override bool IsGenericMethodDefinition { get; }
member this.IsGenericMethodDefinition : bool
Public Overrides ReadOnly Property IsGenericMethodDefinition As Boolean

속성 값

Boolean

MethodInfo 개체가 제네릭 메서드 정의를 나타내면 true이고, 그렇지 않으면 false입니다.true if the MethodInfo object represents the definition of a generic method; otherwise, false.

예제

다음 코드 예제에서는 속성을 사용 하 여 IsGenericMethodDefinition 가 제네릭 메서드 정의를 나타내는지 여부를 나타내는 메시지를 표시 합니다 MethodInfo .The following code example uses the IsGenericMethodDefinition property to display a message indicating whether a MethodInfo represents a generic method definition.

이 예제는 메서드에 대해 제공 된 더 큰 예제의 일부입니다 MakeGenericMethod .This example is part of a larger example provided for the MakeGenericMethod method.

Console.WriteLine(vbTab _
    & "Is this a generic method definition? {0}", _
    mi.IsGenericMethodDefinition)
Console.WriteLine("\tIs this a generic method definition? {0}", 
    mi.IsGenericMethodDefinition);
Console::WriteLine("\tIs this a generic method definition? {0}", 
    mi->IsGenericMethodDefinition);

설명

현재가 MethodInfo 제네릭 메서드 정의를 나타내는 경우에는 다음을 수행 합니다.If the current MethodInfo represents a generic method definition, then:

IsGenericMethodDefinition형식 인수가 제네릭 메서드의 형식 매개 변수에 할당 되었는지 여부를 확인 하려면 속성을 사용 합니다.Use the IsGenericMethodDefinition property to determine whether type arguments have been assigned to the type parameters of a generic method. 형식 인수가 할당 된 경우 IsGenericMethodDefinition 일부 형식 인수가 Type 바깥쪽 형식의 형식 매개 변수를 나타내는 개체인 경우에도 속성은 false를 반환 합니다.If type arguments have been assigned, the IsGenericMethodDefinition property returns false even if some of the type arguments are Type objects that represent type parameters of enclosing types. 예를 들어 다음 C # , Visual Basic 및 c + + 코드를 고려 합니다.For example, consider the following C#, Visual Basic, and C++ code:

```cs
class C
{
    T N<T,U>(T t, U u) {...}
    public V M<V>(V v)
    {
        return N<V,int>(v, 42);
    }
}
```

```vb
Class C
    Public Function N(Of T,U)(ByVal ta As T, ByVal ua As U) As T
        ...
    End Function
    Public Function M(Of V)(ByVal va As V ) As V
        Return N(Of V, Integer)(va, 42)
    End Function
End Class
```

```cpp
ref class C
{
private:
    generic <typename T, typename U> T N(T t, U u) {...}
public:
    generic <typename V> V M(V v)
    {
        return N<V, int>(v, 42);
    }
};
```

M의 메서드 본문에는 M 및 형식의 형식 매개 변수를 지정 하는 메서드 N에 대 한 호출이 포함 되어 있습니다 Int32 .The method body of M contains a call to method N, specifying the type parameter of M and the type Int32. IsGenericMethodDefinition속성은 메서드에 대해 false를 반환 합니다 N<V,int> .The IsGenericMethodDefinition property returns false for method N<V,int>.

참고

개방형 생성 메서드는 N<V,int> c 클래스를 리플렉션할 때 발생 하지 않지만 MakeGenericMethod c를 동적 클래스로 내보내려면를 사용 하 여 생성 해야 합니다.Although the open constructed method N<V,int> is not encountered when reflecting over class C, it must be generated using MakeGenericMethod in order to emit C as a dynamic class.

제네릭 메서드 정의에 선언 형식의 제네릭 매개 변수가 포함 된 경우 생성 된 각 형식과 관련 된 제네릭 메서드 정의가 있습니다.If a generic method definition includes generic parameters of the declaring type, there will be a generic method definition specific to each constructed type. 예를 들어 다음 C # 및 Visual Basic 코드를 고려 합니다.For example, consider the following C# and Visual Basic code:

```csharp
class B<U,V> {}
class C<T> { public B<T,S> M<S>() {...}}
```

```vb
Class B(Of U, V)
End Class
Class C(Of T)
    Public Function M(Of S)() As B(Of T, S)
        ...
    End Function
End Class
```

```cpp
generic <typename U, typename V> ref class B {};
generic <typename T> ref class C
{
public:
    generic <typename S> B<T,S>^ M() {...};
};
```

Visual Basic에서 생성 된 형식에서 C<int> C(Of Integer) 제네릭 메서드 M은을 반환 합니다 B<int, S> .In the constructed type C<int> (C(Of Integer) in Visual Basic), the generic method M returns B<int, S>. 개방형 형식에서 C<T> M은을 반환 B<T, S> 합니다.In the open type C<T>, M returns B<T, S>. 두 경우 모두 속성은 IsGenericMethodDefinition M을 나타내는에 대해를 반환 합니다 true MethodInfo .In both cases, the IsGenericMethodDefinition property returns true for the MethodInfo that represents M.

제네릭 메서드와 관련 된 용어에 대 한 고정 조건 목록은 속성을 참조 IsGenericMethod 하세요.For a list of the invariant conditions for terms specific to generic methods, see the IsGenericMethod property. 제네릭 리플렉션에 사용 되는 다른 용어의 고정 조건 목록은 속성을 참조 IsGenericType 하세요.For a list of the invariant conditions for other terms used in generic reflection, see the IsGenericType property.

적용 대상

추가 정보