MethodInfo.IsGenericMethodDefinition Özellik

Tanım

Geçerlinin MethodInfo genel bir yöntemin tanımını temsil edip etmediğini belirten bir değer alır.

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

Özellik Değeri

true MethodInfo nesnesi genel bir yöntemin tanımını temsil ederse; değilse, false.

Örnekler

Aşağıdaki kod örneği, IsGenericMethodDefinition genel bir yöntem tanımını temsil edip etmediğini MethodInfo belirten bir ileti görüntülemek için özelliğini kullanır.

Bu örnek, yöntemi için MakeGenericMethod sağlanan daha büyük bir örneğin parçasıdır.

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);

Açıklamalar

Geçerli MethodInfo , genel bir yöntem tanımını temsil ediyorsa:

IsGenericMethodDefinition Tür bağımsız değişkenlerinin genel bir yöntemin tür parametrelerine atanıp atanmadığını belirlemek için özelliğini kullanın. Tür bağımsız değişkenleri atanmışsa, tür bağımsız değişkenlerinden Type bazıları kapsayan IsGenericMethodDefinition türlerin tür parametrelerini temsil eden nesneler olsa bile özelliği false döndürür. Örneğin, aşağıdaki kodu göz önünde bulundurun:

 ```csharp
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'nin yöntem gövdesi, M türü parametresini ve türünü Int32belirterek N yöntemine bir çağrı içerir. IsGenericMethodDefinition özelliği yöntemi N<V,int>için false döndürür.

Note

C sınıfına yansıtılırken açık oluşturulan yöntemle N<V,int> karşılaşılmasa da, C'yi dinamik bir sınıf olarak yaymak için kullanılarak MakeGenericMethod oluşturulması gerekir.

Genel yöntem tanımı bildirim türünün genel parametrelerini içeriyorsa, her bir yapı türüne özgü genel bir yöntem tanımı olacaktır. Örneğin, aşağıdaki kodu göz önünde bulundurun:

```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'da ) genel yöntemi, M C<T>, M döndürür B<T, S>. Her iki durumda IsGenericMethodDefinition da özelliği M'yi temsil eden için MethodInfo döndürürtrue.

Genel yöntemlere özgü koşulların sabit koşullarının listesi için özelliğine IsGenericMethod bakın. Genel yansımada kullanılan diğer terimlere ilişkin sabit koşulların listesi için özelliğine IsGenericType bakın.

Şunlara uygulanır

Ayrıca bkz.