21Close23
WarptenOn the 2016-05-17 at 06:20pm
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.