2011-01-08 4 views
3

Ich bin ein absoluter Neuling bei C# (ich habe es noch nie zuvor benutzt) und musste vor kurzem einen Code darin suchen. Ich verbrachte die längste Zeit damit, eine nicht existierende Methode in einer Klasse aufzuspüren, die nirgendwo in der Klasse definiert war, in der sie verwendet wurde. Später fand ich heraus, dass es sich um eine "Erweiterungsmethode" handelte, die ich aus einer Quelle kenne, die auf eine andere Klasse aufgepfropft wurde.Bestimmen, wo eine Funktion in C# definiert ist?

Ich verstehe vollständig die Logik hinter dieser Sprachfunktion und denke eigentlich, es ist ganz nett. Als jemand ohne viel Erfahrung in der Sprache macht es jedoch schwieriger, unbekannte Methoden nachzuschlagen, da die betreffende Methode überall definiert werden kann.

Meine Frage ist dies: Angesichts eines unbekannten Methodenaufrufs in C#, was ist der beste Weg für mich, mehr Informationen darüber nachzuschlagen, da es eine Erweiterungsmethode sein könnte, die in einer völlig separaten Klasse definiert ist?

Antwort

9

Ich würde einfach mit der rechten Maustaste auf die Funktion und wählen Sie "Gehe zu Definition".

+4

... oder drücke F12. – Joey

+0

@Joey Na! Das dachte ich mir auch, aber ich stand vor kurzem bei einem Kollegen-PC und sagte ihm, er solle "F12" schlagen, was er tat und nichts passierte. Ich denke, er hat zufällig ein anderes Tastaturlayout gewählt. Also 'F12' hilft meistens, aber manchmal nicht ... :-) –

+0

@Uwe Keim, ich habe noch nie ein Tastaturlayout mit verschiedenen Funktionstasten gesehen. Vielleicht hat er es auf die Ewok-Sprache gesetzt? – Dykam

0

Welche Art von Informationen möchten Sie? Wenn es reguläre Erweiterung, die im Rahmen definiert sind, können Sie Informationen auf msdn suchen. Abgesehen davon empfehle ich auch die Lösung, die Uwe Keim geschrieben hat, rechtsklicken und "Gehe zu Definition" auswählen.

1

Auf der Standard-C# -Umgebung Schlüsselsatz:

F12: Zum Definition

Cntrl + -(Minus): vorherigen Mausposition Gehen Sie zurück (im Grunde zurück gehen, wo Sie vorher waren)