Я исследовал ключевое слово out
в C# после прочтения раздела об этом в C# in Depth. Кажется, я не могу найти пример, показывающий, почему ключевое слово требуется вместо простого присвоения значения оператору возврата. Например:
public void Function1(int input, out int output)
{
output = input * 5;
}
public int Function2(int input)
{
return input * 5;
}
...
int i;
int j;
Function1(5, out i);
j = Function2(5);
И i, и j теперь имеют одинаковое значение. Это просто удобство возможности инициализации без знака =
или есть какое-то другое значение, которое я не вижу? Я видел несколько похожих ответов, в которых упоминалось, что он перекладывает ответственность за инициализацию на вызываемого здесь. Но все это вместо того, чтобы просто присвоить возвращаемое значение и не иметь сигнатуры метода void?