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.