drucken Sie den Namen der Variablen in c#
habe ich eine Erklärung
int A = 10,B=6,C=5;
und ich möchten, schreiben Sie eine print-Funktion, so dass ich übergeben Sie die int-variable zu und
er druckt mir den Namen der variable und den Wert.
wenn ich z.B. call print(A)
es muss wieder Ein": 10", und drucken Sie (B) dann muss es zurück "B:6"
kurz gesagt ich möchte wissen, wie kann ich auf die Namen der Variablen und drucken Sie es zu einem string in c#. Muss ich die reflektion verwenden?
Nach der Lektüre der Antworten
Hallo alle, vielen Dank für die Vorschläge. Ich werde Sie ausprobieren, allerdings wollte ich wissen, ob es überhaupt möglich ist .NET 2.0? Nichts ähnlich
#define prt(x) std::cout << #x " = '" << x << "'" << std::endl;
makro, das es in C/C++?
InformationsquelleAutor Anirudh Goel | 2009-04-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der einzige sinnvolle Weg, dies zu tun wäre, um die
Expression
API; aber das ändert den code noch weiter...Hinweis: wenn Sie diese für debugging-Zwecke werden Sie sicher, dass Sie
[Conditional("DEBUG")]
um die Methode, wie die Verwendung einer Variablen, die in dieser Weise ändert sich die Art der code auf subtile Weise.Hallo Marc, nichts ähnlich wie #define prt(x) std::cout << #x " = '" << x << "'" << std::endl; gibt es in C#?
Sie lernen etwas neues auf ALSO jeden Tag.
InformationsquelleAutor Marc Gravell
Können Sie die Verwendung von lambda-Ausdrücken:
InformationsquelleAutor TcKs
Dies ist nicht möglich ohne eine gewisse "Hilfe" von der Website aufrufen; auch Reflexion nicht wissen, über die Namen der lokalen Variablen.
Streng genommen, die es braucht .NET 3.5 sowie C# 3.0
Die Frage sagt Sie "print ()" - es ist nicht möglich.
InformationsquelleAutor Brian
Dies ist nicht möglich, mit Reflexion (siehe Brian und Joel). Im Allgemeinen ist dies nicht möglich, einfach, weil Sie können nicht garantieren, ein benannter Wert, der übergeben wird, um Ihre print-Funktion. Zum Beispiel, ich könnte genauso gut Folgendes tun
Keiner dieser Ausdrücke hat tatsächlich einen Namen. Was würden Sie erwarten, dass print hier?
Ich denke, es wird davon ausgegangen, dass eine variable name an die Funktion übergeben werden, da der Nutzer selbst ist, geht das Programm zu benutzen. Wenn Sie Ihre Linie des Denkens ist richtig. Es ist nur mein POV.
InformationsquelleAutor JaredPar
Andere Lösung (von einem geschlossen posten):
Inspiriert von Jon Skeet ist post über Null-Referenz-exception-handling und plötzlich daran erinnert, über Projektion, es ist ein Weg, um irgendwie tun, dass.
Hier ist die komplette arbeiten codez:
InformationsquelleAutor Igor Zevaka
Hier in die Zukunft, die wir benutzen Sie einfach den nameof-operator.
InformationsquelleAutor C.M.