У меня есть функция структурно , похожая на эту:
void Foo(dynamic arg1, dynamic arg2, out dynamic result) {
result = arg1 + arg2;
}
Я использую Dynami c, поскольку эта функция должна обрабатывать любой тип, который я к ней добавляю.
Но если я попытаюсь назвать это так:
string Bar = null;
...
Foo("a", "b", out this.Bar);
я получаю сообщение об ошибке; Кажется, я не могу передать свою предопределенную строку Bar
в функцию (Cannot convert from 'out string' to 'out dynamic'
).
Однако, когда я удаляю ключевое слово out из объявления типа и моего вызова функции, все работает совершенно нормально ( Я упоминаю об этом, чтобы доказать, что все остальное работает отлично).
Я не понимаю, почему модификатор out меняет всю ситуацию, и Dynami c внезапно не может быть приведен к строке, как я был бы в состоянии сделать это, неявно присваивая его , как указано в документах .
Я был бы рад любой помощи, по-видимому, не так уж много людей передают строки функции, ожидающей dynamic
с модификатором out
...