2016-10-10 1 views
1

Quelle est la différence entre créer une variable spécifiquement pour assigner une variable et utiliser le nouveau mot-clé pour en créer un en ligne avec l'affectation de la valeur? Je comprends qu'ils finissent tous les deux avec le même résultat, je voudrais juste savoir s'il y a des différences de performance et des trucs comme ça.Quelle est la différence entre ces manières d'attribuer une variable?

Par exemple:

this.transform.position = new Vector3(mousePosInBlocks, this.gameObject.transform.position.y, this.transform.position.z); 

vs

Vector3 temp = new Vector3(mousePosInBlocks, this.gameObject.transform.position.y, this.transform.position.z); 
this.gameObject.transform.position = temp; 

Ce code exemple utilise le système de position Unity 5 s avec des objets de jeu ..

+3

Pouvez-vous comparer le code compilé? Je m'attendrais à ce qu'ils soient exactement le même code en mode release. – Rup

+0

@Rup Je viens de regarder le code compilé et il semble être le même, juste les lignes sont dans un ordre un peu différent. Merci! – Bdubbs

+0

@Rup Je suis un peu nouveau sur StackOverflow, donc je ne suis pas sûr que ce soit le seul moyen, mais si vous créez une réponse courte, je la marquerai comme correcte et je l'améliorerai. Merci pour l'aide! – Bdubbs

Répondre

1

Les deux ont le même résultat final, cependant la seconde méthode est inutile car la nouvelle variable 'temp' est créée et stockée en mémoire. Cela prend donc un peu de mémoire et une petite quantité de puissance de traitement pour le faire.

+0

Merci pour l'info! – Bdubbs

2

Le code compilé est essentiellement le même, ce qui signifie peu pas de différences. Merci à @Rup pour m'avoir signalé cela.