2009-04-16 11 views
2

double: Determine the name of the variable used as a parameter to a methodObtention du nom du paramètre passé dans une méthode

Est-il possible de récupérer le nom d'un paramètre qui a été passé dans une méthode par exemple

int someParameter = 1; 
Method(someParameter); 

public void Method(int parameter) 
{ 
    // I want the name of 'parameter' which will be 'someParameter'. 
} 
+1

Puis-je vous demander pourquoi vous voulez savoir? Il peut y avoir un meilleur moyen d'atteindre ce que vous voulez. –

Répondre

2

Non, il n'y a aucun moyen.

Cela sera suivi par un groupe de personnes montrant des manières d'expression lambda étranges pour changer le site d'appel et obtenir un nom, mais la réponse courte est non.

6

Non. Seule la valeur est transmise en tant qu'argument. Toute la méthode obtient est l'entier. Le fait que l'expression soit juste en train d'évaluer une variable est inconnu en ce qui concerne votre méthode.

+0

Pas d'intérêt (je ne vois pas de raison non-WTF pour le faire), changerait le paramètre à "ref" permettre de faire cela? –

+0

@Michael: Non. Au moins, pas sans un code dangereux vraiment dangereux qui a pu tester diverses variables * possibles *, et en trouver un qui avait le même emplacement de stockage. Cela * pourrait * être faisable, je ne suis pas sûr. –

0

La seule manière sera peut-être avec des annotations avec la rétention d'exécution. Mais alors, ce sera le nom de l'annotation, pas du paramètre lui-même. Un nom de paramètre est juste un artefact syntaxique de la langue. Il n'est pas reporté sur le résultat compilé.