引数、inとINOUTの違いについて

データテーブルの引数の方向について質問があります。
MainでExcelを読み込み、データテーブル型に格納後、呼び出し先WFでデータテーブルのA列の値に書き込みをしました。書き込み後、mainに戻って後続の処理をしていくのですが、

データテーブル型の引数を誤ってinにした状態で組んでいました。(本当はINOUTにしようと思っていた。データが更新されたため)
ですが呼び出し先WFで書き込み後、mainに戻ってきたときに、引数がINでもデータテーブルのA列の値が更新されていました。

呼び出し先でデータテーブルの中身を更新した状態でmainに戻ってきたらINOUTだと思っていたのですが、違うのでしょうか

こんにちは

これは変数が参照型だからです。変数の参照先がIN型で渡されて、その先でその変数の参照先が更新されると、呼び出し先から全体を返さなくても、呼び出し元の変数は同じ場所を参照しているので、結果として更新されます。

以下InvokeCodeへの受け渡しですが、類似の話を図示していますので、こちらも参考になるかもしれません。