Comme je l'ai dit, c'est en tous cas le but du Java donc c'est probablement vrai en C# aussi. Et ça fait du bien de pas avoir à réfléchir quand tu écris une expression - juste à savoir ce que tu fais. Exemple bête, on veut écrire ça:
FILE *f;
[...]
if (f = fopen("truc", "r")) {
[...]
}
Ben à éviter, parce que ça fout un warning sous GCC, du coup si mon code était recompilé un jour sous GCC je passerais pour un type qui code comme un porc

(ce qui est bien évidemment parfaitement faux

)