21Fermer23
WarptenLe 17/05/2016 à 18:20
out force l'assignation à la variable, ref ne le fait pas.

Les deux sont des "références".
À noter que les types objets (class, T[]) sont traités comme des références par défaut. Ce n'est pas le cas de struct ou T.

En gros

ref Dictionary<int, string> est redondant
out Dictionary<int, string> est redondant mais garantit l'assignation d'une valeur. Ce qui n'empêche pas null.

L'intérêt c'est qu'on a pas forcément besoin de la contrainte out, ref peut suffire, elle est moins forte. On s'en rend compte à l'usage.