Это должно быть точное совпадение, иначе foo
может сделать:
aaa = 123;
, который будет действителен для foo
(это будет int
к object
),но не для bar
(где это string
).
Два немедленных варианта;во-первых, используйте промежуточную переменную и проверку типа:
object tmp = bbb;
foo(ref tmp);
bbb = (string)tmp;
или, в качестве альтернативы, возможно, попробуйте дженерики (foo<T>(ref T aaa)
);или трактуйте bbb
как object
вместо string
.