Aracılığıyla paylaş


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, genel bir yöntem tanımını temsil edip etmediğini MethodInfo belirten bir ileti görüntülemek için özelliğini kullanırIsGenericMethodDefinition.

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 ederse:

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, IsGenericMethodDefinition tür bağımsız değişkenlerinden Type bazıları kapsayan türlerin tür parametrelerini temsil eden nesneler olsa bile özelliği false döndürür. Örneğin, aşağıdaki C#, Visual Basic ve C++ kodunu göz önünde bulundurun:

```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'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.

Not

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üne ait genel parametreler içeriyorsa, her bir yapı türüne özgü genel bir yöntem tanımı olacaktır. Örneğin, aşağıdaki C# ve Visual Basic kodunu 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'te) yerleşik türünde C<int>C(Of Integer) M genel yöntemi döndürürB<int, S>. Açık türündeki C<T>M, döndürür B<T, S>. Her iki durumda da özelliği M'yi IsGenericMethodDefinition 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.