C# には ref 引数と out 引数というのがあって、前者は caller が、後者は callee が責任をもって代入しておくみたいな感じで変数の参照を渡せる機能なんですが out を使おうとするとそれだけのためにそれより上の文で変数を宣言しておく必要があって微妙に不便だった時代があった