There are many reasons why such automatic conversions are not allowed (loss of information to begin with).
As a rule, this leads to the wrong one (for example, it is easy to cause the wrong overload): this contradicts the idea of a “pit of success”.
, - string, :
int GetIntOrZero(string value) {
Int32.TryParse(value, out int res);
return res;
}
var myObj = new MyType(args);
var count = GetIntOrZero(myObj);
, GetIntOrZero, , .