Wie bekomme ich Parameternamen aus einem Ausdrucksbaum?

8

Ich habe einen Ausdruck dieses Typs:

%Vor%

Wie bekomme ich die Parameternamen von diesem Ausdruck (optional: und Werte)?

Beispiel:

%Vor%

Namen könnten str_par1, int_par2, obj_par3

sein     
Omu 29.01.2010, 15:03
quelle

5 Antworten

16
%Vor%     
Mark Seemann 29.01.2010, 15:47
quelle
4

Sie können die Parameternamen von der Eigenschaft Parameters erhalten.

Zum Beispiel:

%Vor%

Für den zweiten Teil sind Lambda-Ausdrücke nur unkompilierte Funktionen.
Ihre Parameter haben keine Werte, bis Sie den Ausdruck kompiliert haben und den Delegaten mit einigen Werten aufrufen.

Wenn Sie den Lambda-Ausdruck i => i.ToString() verwenden, wo gibt es Parameterwerte?

    
SLaks 29.01.2010 15:10
quelle
3

Die Parameter für Method ? Holen Sie sich die MethodInfo aus dem Ausdruck (mit einer Rate, MethodCallExpression.Method ) und dann MethodBase.GetParameters() verwenden Die Parameter. ( ParameterInfo hat verschiedene nützliche Eigenschaften, einschließlich Name ).

    
Jon Skeet 29.01.2010 15:40
quelle
2
  

Wie bekomme ich die Parameternamen von diesem Ausdruck?

%Vor%

Für Ihre zukünftige Referenz finden Sie die Dokumentation hier:

Ссылка

  

(optional: und Werte)?

Das ergibt für mich keinen Sinn. Können Sie erklären, was Sie mit "und Werten" meinen?

    
Eric Lippert 29.01.2010 15:11
quelle
2
  

Ich wollte eigentlich die Namen der Parameter der Methode o = & gt; o.Methode (Par1, Par2, Par3)

Sie glauben, dass wir vielleicht psychisch sind.

Wie auch immer, weitermachen.

  

Ich wollte eigentlich die Namen der Parameter der Methode o = & gt; o.Methode (Par1, Par2, Par3)

Der Name des ersten formalen Parameters lautet:

%Vor%

Der Ausdruck, der das erste Argument ist, ist

%Vor%

Für Ihre zukünftige Referenz finden Sie die Dokumentation hier:

Ссылка

    
Eric Lippert 29.01.2010 15:51
quelle

Tags und Links