Custom cast is a hidden feature. Whether the actual execution is being executed or a custom conversion operator is called depends on the type of compilation time of the expression being expressed.
, Ie. b object, object . .
MyString a = "test";
object b = a;
var c = (string)b;
string d = a;
var e = (string)a;
// , string d = MyString.op_implicit (a);
. , , , .
. , , , . (string)a , , , a, . , MyString, ( , ).
, , ( ) , , .
( ), ,