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: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: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 :)