In diesem speziellen Fall, nein.
Jedes Mal, wenn Sie eine Methode für ein Ergebnis eines anderen Methodenaufrufs aufrufen, new
, Zugriff auf Eigenschaften usw.
var temp = new MyClassTest()
temp.Print();
Also in diesem Fall Ihre zwei Beispiele sind die gleichen: Stand: wenn Sie taten
new MyClassTest().Print();
Es zu ähnlich ist.
Es gibt einige Varianten, in denen sie sich unterscheiden.
Es wären Objekte vom Werttyp, auf die über Array- oder Feldzugriff zugegriffen wird. Hier kann der Zugriff die Adresse des tatsächlichen Objekts verwenden, anstatt eine Kopie zu erstellen. Nun ist es möglich, dass das Gegenteil passiert, wo anstelle eines impliziten temporären lokalen Seins erstellt und explizite lokale entfernt wird, aber es wird nicht versprochen. Beachten Sie, dass bei änderbaren Werttypen der Code mit und ohne temporärem Local für diese Fälle auch nicht semantisch gleich ist (sondern für einen Fall, der näher an Ihrem Beispiel liegt, wo das Objekt das Ergebnis eines Methodenaufrufs ist, der kein a war ref return
zu einer ref
Variable).
Eine andere ist, wenn es in einer yield
-using oder async
Methode ist. Hier werden die Locals in Ihrer Methode zu Feldern in einem erzeugten Objekt (das entweder IEnumerable<T>
und/oder IEnumerator<T>
für yield
oder Task
für async
implementiert), während die "unsichtbaren" temporären Locals, die ich oben beschrieben habe, dies nicht tun. (Der Compiler könnte und wird wahrscheinlich in der Zukunft einen besseren Job machen, um einige davon loszuwerden, die nach yield
oder async
Calls nicht existieren und deshalb nicht wirklich Felder sein müssen, aber vorerst alles die Einheimischen werden Felder).
So gibt es ein paar Mal, wenn explizite Locals mit einer einzigen Operation auf sie etwas anders als die Operation direkt auf die Mittel, mit denen Sie den Wert erhalten haben, obwohl Ihr Beispiel ist nicht einer dieser Zeiten.
Kurz gesagt, kein Unterschied. – JohnyL
@JohnyL welchen Weg soll ich mehr nutzen? –
@RonJeremy sagen Sie möchten mehrere Methoden der gleichen Instanz aufrufen..wird der zweite Anruf noch eine Option sein? Es geht darum, dieselbe Instanz wiederzuverwenden. –