悩み
vb.netにおいて、変数の中身を書き換えるFnctionを用意する場合、
呼び出し元で、
変数 = Function(変数)
とするのがいいか、(戻り値で返す)
それとも、
Functionの引数で、
(ByRef 変数)
として、
Functionの中身の処理で、
変数 = 値
とするの、どっちがスマートなんだ?
BingAIさんの回答
VB.NETにおける関数の引数の渡し方についてのご質問、ありがとうございます。どちらの方法を選ぶかは、主に以下の要素によって決まります:
- 可読性:
変数 = Function(変数)
の形式は、関数が新しい値を返すことを明示的に示しています。これは一般的に可読性が高く、関数が何を行っているかを理解しやすいです。副作用:
ByRef
を使用すると、関数は引数の元の変数を直接変更します。これは「副作用」を持つと言われ、一部の開発者はこれを避ける傾向があります。なぜなら、関数が変数を直接変更すると、コードの流れが予想外の方法で変更され、バグの原因となる可能性があるからです。パフォーマンス:大きなデータ構造を扱う場合、
ByRef
を使用するとパフォーマンスが向上することがあります。なぜなら、ByRef
は参照渡しを行うため、大きなデータ構造のコピーを作成する必要がないからです。したがって、どちらの方法を選ぶかは、上記の要素を考慮に入れて判断してください。また、チームやプロジェクトのコーディング規約に従うことも重要です。
- 優先順位1.チームのルールがあればそれに従う
- 優先順位2.ByRefはなるべく使わない
ということになりますな。
参考
(TeraTail)
基本的には可読性が悪いので、止めれるなら止めるべきだと思いますね。
ですよねぇ~
コメント