У меня сложилось впечатление, что вы не совсем понимаете, что означает ключевое слово. По сути, когда вы пишете что-то вроде void MyMethod(out string var)
, это означает, что вы хотите вернуть значение из метода , а не передавать его в метод.
Например, есть bool Int32.TryParse(string s, out int result)
. Он анализирует строку s, возвращает, если анализ был успешным, и помещает проанализированный номер в результат. Таким образом, для правильного использования out
у вас должна быть реальная переменная в месте вызова. Таким образом, вы не можете написать Int32.Parse("10", 0)
, потому что этот метод не может присвоить результат от 10 до 0. Ему нужна реальная переменная, например:
int result;
bool success = Int32.TryParse("10", out result);
Итак, ваше желание несколько другое - оно не соответствует намерениям дизайнера языка для out
:)