Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo PropertyInfo.GetValue (Object)

.NET Framework (current version)
 

Data di pubblicazione: novembre 2016

Restituisce il valore della proprietà di un oggetto specificato.

Spazio dei nomi:   System.Reflection
Assembly:  mscorlib (in mscorlib.dll)

public object GetValue(
	object obj
)

Parametri

obj
Type: System.Object

Oggetto di cui verrà restituito il valore della proprietà.

Valore restituito

Type: System.Object

Valore della proprietà dell'oggetto specificato.

Si chiama il GetValue(Object) overload per recuperare il valore di una proprietà non indicizzata, se si tenta di recuperare il valore di una proprietà indicizzata, il metodo genera un TargetParameterCountException (eccezione). È possibile determinare se una proprietà indicizzata o non chiamando il GetIndexParameters metodo. Se la lunghezza del valore restituito ParameterInfo matrice è zero, la proprietà non indicizzata.

Si tratta di un metodo pratico che fornisce un'implementazione per la classe astratta GetValue(Object, BindingFlags, Binder, Object[], CultureInfo) metodo con il BindingFlags parametro impostato su BindingFlags.Default, Binder impostato su null, la matrice di oggetti di valori di indice impostato su null, e CultureInfo impostato su null.

L'esempio seguente definisce una Planet classe che dispone di due proprietà: Name, il nome del pianeta; e Distance, distanza del pianeta Terra. Nell'esempio viene creata un'istanza un Planet oggetto che rappresenta il pianeta lidi e lo passa a un GetPropertyValues metodo che visualizza informazioni sulle proprietà e utilizza il GetValue per ottenere il valore di ogni Planet proprietà.

using System;
using System.Reflection;

public class Planet
{
   private String planetName;
   private Double distanceFromEarth;

   public Planet(String name, Double distance)
   {
      planetName = name;
      distanceFromEarth = distance;
   } 

   public String Name
   { get { return planetName; } }

   public Double Distance 
   { get { return distanceFromEarth; }
     set { distanceFromEarth = value; } }
}

public class Example
{
   public static void Main()
   {
      Planet jupiter = new Planet("Jupiter", 3.65e08);
      GetPropertyValues(jupiter);
   }

   private static void GetPropertyValues(Object obj)
   {
      Type t = obj.GetType();
      Console.WriteLine("Type is: {0}", t.Name);
      PropertyInfo[] props = t.GetProperties();
      Console.WriteLine("Properties (N = {0}):", 
                        props.Length);
      foreach (var prop in props)
         if (prop.GetIndexParameters().Length == 0)
            Console.WriteLine("   {0} ({1}): {2}", prop.Name,
                              prop.PropertyType.Name,
                              prop.GetValue(obj));
         else
            Console.WriteLine("   {0} ({1}): <Indexed>", prop.Name,
                              prop.PropertyType.Name);

   }
}
// The example displays the following output:
//       Type is: Planet
//       Properties (N = 2):
//          Name (String): Jupiter
//          Distance (Double): 365000000

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 4.5
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Windows Phone Silverlight
Disponibile da 8.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: