Informations
Le sujet que vous avez demandé est indiqué ci-dessous. Toutefois, ce sujet ne figure pas dans la bibliothèque.
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

PropertyInfo.GetValue, méthode (Object, Object[])

Retourne la valeur de la propriété avec des valeurs d'index facultatives pour les propriétés indexées.

Espace de noms: System.Reflection
Assembly : mscorlib (dans mscorlib.dll)

public virtual Object GetValue (
	Object obj,
	Object[] index
)
public Object GetValue (
	Object obj, 
	Object[] index
)
public function GetValue (
	obj : Object, 
	index : Object[]
) : Object
Non applicable.

Paramètres

obj

Objet dont la valeur de propriété sera retournée.

index

Valeurs d'index facultatives pour les propriétés indexées. Cette valeur doit être référence Null (Nothing en Visual Basic) pour les propriétés non indexées.

Valeur de retour

Valeur de propriété du paramètre obj.
Type d'exceptionCondition

ArgumentException

Le tableau index ne contient pas le type d'arguments requis.

- ou -

L'accesseur get de la propriété est introuvable.

TargetException

L'objet ne correspond pas au type cible ou une propriété est une propriété d'instance, mais obj est référence Null (Nothing en Visual Basic).

TargetParameterCountException

Le nombre de paramètres dans index ne correspond pas à celui de la propriété indexée.

MethodAccessException

Une tentative non conforme d'accès à une méthode privée ou protégée à l'intérieur d'une classe s'est produite.

TargetInvocationException

Une erreur s'est produite pendant la récupération de la valeur de propriété. Par exemple, une valeur d'index spécifiée pour une propriété indexée est hors limites. La propriété InnerException indique la cause de l'erreur.

Cette méthode est commode pour fournir une implémentation pour la méthode GetValue abstraite avec un paramètre BindingFlags de DefaultChangeType, Binder ayant la valeur référence Null (Nothing en Visual Basic) et CultureInfo ayant la valeur référence Null (Nothing en Visual Basic).

Étant donné que les propriétés statiques appartiennent au type et non aux objets individuels, vous obtenez les propriétés statiques en passant référence Null (Nothing en Visual Basic) en tant qu'argument de l'objet. Par exemple, utilisez le code suivant pour obtenir la propriété statique CurrentCulture de CultureInfo :

PropertyInfo CurCultProp = 
    (typeof(CultureInfo)).GetProperty("CurrentCulture"); 
Console.WriteLine("CurrCult: " +
    CurCultProp.GetValue(null,null));

Pour utiliser la méthode GetValue, commencez par obtenir le Type de la classe. À partir de Type, obtenez PropertyInfo. À partir de PropertyInfo, utilisez la méthode GetValue.

L'exemple suivant montre comment obtenir la valeur d'une propriété indexée. La propriété String.Chars est la propriété par défaut (l'indexeur en C#) de la classe String.

using System;
using System.Reflection;

class Example
{
    public static void Main()
    {
        string test = "abcdefghijklmnopqrstuvwxyz";

        // To retrieve the value of the indexed Chars property using
        // reflection, first get a PropertyInfo for Chars.
        PropertyInfo pinfo = typeof(string).GetProperty("Chars");

        // To retrieve an instance property, the GetValue method
        // requires the object whose property is being accessed and an
        // array of objects representing the index values.

        // Show the seventh letter (g)
        object[] indexArgs = { 6 };
        object value = pinfo.GetValue(test, indexArgs);

        Console.WriteLine(value);

        // Show the complete string.
        for (int x = 0; x < test.Length; x++)
        {
            Console.Write(pinfo.GetValue(test, new Object[] {x}));
        }
    }
}

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Microsoft .NET Framework 3.0 est pris en charge sur Windows Vista, Microsoft Windows XP SP2 et Windows Server 2003 SP1.

.NET Framework

Prise en charge dans : 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Prise en charge dans : 2.0, 1.0

XNA Framework

Prise en charge dans : 1.0
Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.

Ajouts de la communauté

Afficher:
© 2014 Microsoft. Tous droits réservés.