You use:
dynamic f = new t(); // f has type 'dynamic', no compile-time link between f and type 't'
f = 44; // the implicit operator doesn't get called
Why would assigning 44
to a variable of type dynamic
convert that 44
through any user-defined operator? It simply puts 44
(or rather a boxed 44
) into f
.
Compare with:
t f = new t();
f = 44;