In der Tat der erste Weg, einen temporären erstellen, ist lesbare aus zwei Gründen:
1) es ist prägnantes
Es gibt weniger Code zu lesen, gibt es keinen unnötigen lokalen Variable eingeführt, und Kein potentieller Name kollidiert mit einem anderen lokalen oder Shadowing einer Variablen mit demselben Namen in einem umschließenden Scope
2) es kommuniziert etwas, dass die zweite Form nicht, dass das Objekt vorübergehend verwendet wird.
Wenn ich es lese, weiß ich, dass diese Instanz nie wieder benutzt wird, also muss ich in meinem "mentalen Compiler", den ich benutze, um den Code zu verstehen, den ich gerade lese, keinen Verweis darauf Mehr als der Code enthält einen Verweis darauf.
Wie Mehrdad bemerkt, ist es jedoch keine gute Idee, es mit einer Random-Klasse zu tun.
Wie er auch bemerkt, machen die überflüssigen Klammern es weniger prägnant; Wenn Sie sich nicht in einer staubigen Ecke einer Sprache befinden, nehmen Sie an, dass kompetente Programmierer die Vorrangstellung der Sprache kennen. In diesem Fall, auch wenn ich die Vorrangstellung des Operators nicht kenne, ist die alternative Syntaxanalyse (Neuaufruf bei der Rückkehr einer Funktion) unsinnig, so dass das "offensichtliche" Lesen das korrekte Lesen ist.
int RandomIndex = (new Random()).Next(0,100);
int RandomIndex = new Random().Next(0,100);
Es gibt keine Verteilung, wenn Sie nur eine Zufallszahl generieren. Und wenn Random() ein schlechtes Kaltstartverhalten hat, erhält man keine einheitlichen Zahlen. –
@danbruc: Technisch gibt es eine Verteilung, aber ja, ich verstehe Ihren Standpunkt. Du hast recht. Aber ich habe gesehen, Entwickler verwenden diese Methode, um Zufallszahlen in einer Schleife mehrmals zu generieren. Ich dachte, es ist ziemlich wichtig, es hier zu erwähnen. –
Volle Antwort darauf - Sie sollten nicht einmal daran denken, auf diese Weise mehrere Zahlen zu generieren. –