Tiration de C # Réflexion pour accéder aux valeurs des propriétés à partir des chaînes
La réflexion dans C # fournit un moyen dynamique d'interagir avec les objets lors de l'exécution. Une application commune consiste à récupérer les valeurs des propriétés lorsque vous n'avez que leurs noms comme chaînes.
Cette technique est particulièrement utile lorsqu'il s'agit de données ou de configurations dynamiques où les noms de propriétés ne sont pas connus au moment de la compilation.
en utilisant Type.GetProperty()
et GetValue()
Le noyau de cette approche réside dans les méthodes Type.GetProperty()
et GetValue()
. Voici une fonction concise démontrant ceci:
<code class="language-csharp">public static object GetPropertyValue(object obj, string propertyName) { Type type = obj.GetType(); PropertyInfo property = type.GetProperty(propertyName); return property?.GetValue(obj); }</code>
Cette fonction prend un objet et un nom de propriété (en tant que chaîne) et renvoie la valeur de la propriété. L'opérateur conditionnel nul (?.
) gère gracieusement les cas où la propriété n'existe pas, empêchant les exceptions.
Exemple pratique
illustrons son utilisation:
<code class="language-csharp">public class MyClass { public string MyProperty { get; set; } } // ... later in your code ... string className = "MyClass"; string propertyName = "MyProperty"; object instance = Activator.CreateInstance(Type.GetType(className)); object propertyValue = GetPropertyValue(instance, propertyName); </code>
Cet exemple crée dynamiquement une instance de MyClass
et récupère la valeur de MyProperty
en utilisant la fonction GetPropertyValue
. Cela élimine le besoin d'accès à la propriété codé en dur et améliore la flexibilité du code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!