C#やVB.netにおいてByRefはあんまり使わん方が良いらしい | クズリーマンのカス備忘録

C#やVB.netにおいてByRefはあんまり使わん方が良いらしい

.net-logo .NET Framework
スポンサーリンク

悩み

vb.netにおいて、変数の中身を書き換えるFnctionを用意する場合、
呼び出し元で、

変数 = Function(変数)

とするのがいいか、(戻り値で返す)

それとも、

Functionの引数で、

(ByRef 変数)

として、

Functionの中身の処理で、

変数 = 値

とするの、どっちがスマートなんだ?

BingAIさんの回答

VB.NETにおける関数の引数の渡し方についてのご質問、ありがとうございます。どちらの方法を選ぶかは、主に以下の要素によって決まります:

  1. 可読性変数 = Function(変数)の形式は、関数が新しい値を返すことを明示的に示しています。これは一般的に可読性が高く、関数が何を行っているかを理解しやすいです。

  2. 副作用ByRefを使用すると、関数は引数の元の変数を直接変更します。これは「副作用」を持つと言われ、一部の開発者はこれを避ける傾向があります。なぜなら、関数が変数を直接変更すると、コードの流れが予想外の方法で変更され、バグの原因となる可能性があるからです。

  3. パフォーマンス:大きなデータ構造を扱う場合、ByRefを使用するとパフォーマンスが向上することがあります。なぜなら、ByRefは参照渡しを行うため、大きなデータ構造のコピーを作成する必要がないからです。

したがって、どちらの方法を選ぶかは、上記の要素を考慮に入れて判断してください。また、チームやプロジェクトのコーディング規約に従うことも重要です。

  • 優先順位1.チームのルールがあればそれに従う
  • 優先順位2.ByRefはなるべく使わない

ということになりますな。

参考

(TeraTail)

基本的には可読性が悪いので、止めれるなら止めるべきだと思いますね。

ですよねぇ~

コメント

タイトルとURLをコピーしました