Réflexion C #: moyen le plus rapide de mettre à jour une valeur de propriété?
Est-ce le moyen le plus rapide pour mettre à jour une propriété à l'aide de la réflexion? Supposons que la propriété est toujours int:
PropertyInfo counterPropertyInfo = GetProperty();
int value = (int)counterPropertyInfo.GetValue(this, null);
counterPropertyInfo.SetValue(this, value + 1, null);
source d'informationauteur Luke Belbina
Vous devez vous connecter pour publier un commentaire.
Juste être sûr que vous êtes à la mise en cache de la PropertyInfo en quelque sorte, afin de ne pas augmenter de façon répétée appelant type.GetProperty. Autre que cela, il serait probablement plus rapide si vous avez créé un délégué à une méthode du type qui a effectué l'augmentation, ou comme Teoman suggéré de faire le type de mettre en œuvre une interface et l'utiliser.
Vous devriez regarder
FastMember
(nugetle code source], c'est vraiment rapide comparant à la réflexion.J'ai testé ces 3 versions:
L'indice de référence a besoin d'un indice de référence de la fonction:
Un faux catégorie:
Certaines méthodes d'essai:
Le script lui-même:
Maintenant, vous pouvez choisir le vôtre !!!