Bonsoir à tous,
Je me pose une question existentielle sur le mot clé NEW.
Bien que j'ai bien compris que celui ci sert à initialiser une variable de type référence dans le "tas", je ne comprend pas pourquoi dans certains cas, on peut s'en affranchir.
Premier exemple: Lorsque j'appelle une méthode (static ou non) qui renvoie un type objet, je peux me contenter d'écrire:
Dans ce cas, pas besoin du new, pourtant je déclare bien un objet de type référence.
Code : Sélectionner tout - Visualiser dans une fenêtre à part TypeDeMonObjet MonObject = MaMethode(...) // Si ma méthode me renvoie bien un objet de type TypeDeMonObject étant un objet défini via une classe.
Autre exemple (vraiment pris au hasard), lorsque j'utilise la méthode static cette fois, DriveInfo.GetDrives():
Encore une fois pas besoin d'initialiser ma variable via un "new". Et pourtant encore une fois, je déclare un nouvel objet de type référence et tente d'y affecter des valeurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part DriveInfo[] MonTableau = DriveInfo.GetDrives();
Ceci sont 2 exemples parmi tant d'autres, mais je m'y perds, ca me perturbe... J'imagine qu'il y a une règle logique, mais je n'arrive pas à l'isoler.
Quand faut-il utiliser "new" et quand peut on s'en affranchir ? Et que se passe t-il dans le tas si je n'initialise pas avec "New" ?
Merci à vous, d'avance![]()
Partager