C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■83912 / 4階層)  構造体の入れ子
□投稿者/ 大谷刑部 (25回)-(2017/04/21(Fri) 18:27:53)
No83907 (Oboe2001 さん) に返信
>  構造体とクラスのどちらを選択するべきかについて、私は勉強不足であると痛感しました。あまりにもVB6を使っていた期間が長すぎたのだと思います。

VB6が長すぎたとかはあんまり関係ないと思います。

http://dobon.net/vb/dotnet/beginner/whenusestruct.html

にも、配列変数として使用する場合は構造体のメリットが大きいと記載されています。

>参照型の配列の場合、要素のインスタンスはメモリにバラバラに置かれます。一方値型の配列は、要素のインスタンスが一塊で(インラインで)メモリに置かれます。そのため、構造体の配列の方が要素の読み込みと書き込みの効率がよく、さらにガベージコレクションの負担が少ないです。

実際一般論としてVB6のTypeを使っているケースも
大半がこれに該当すると思います。
プロパティーもメソッドも存在するケースは、
クラスの方が圧倒的にいいと思いますが、

VB6のTypeの後継が構造体であることを考慮すると、
VB6でTypeで宣言されているのが最適だったものは、構造体に置き換える方がいい場合が多い
というだけです。

もっとも配列 + 構造体の代わりに
クラス + コレクションを使っているケースもあり、
VB6の時代からインデックス→名称取出とかができるので、
(配列 + 構造体ならループになる)
クラス + コレクションを推奨している人もおり、
そのどちらかがいいとなるとわかりません。

なので、元のロジックがVB6で配列 + 構造体で適当だったかどうかの検証は
必要と思います。



解決済み
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[3]: 構造体の入れ子 /Oboe2001 返信無し
 
上記関連ツリー

構造体の入れ子 / Oboe2001 (17/04/21(Fri) 09:44) #83897
Re[1]: 構造体の入れ子 / 魔界の仮面弁士 (17/04/21(Fri) 10:21) #83898
Re[1]: 構造体の入れ子 / 大谷刑部 (17/04/21(Fri) 11:32) #83903
│└ Re[2]: 構造体の入れ子 / Hongliang (17/04/21(Fri) 11:48) #83905
│  └ Re[3]: 構造体の入れ子 / Oboe2001 (17/04/21(Fri) 13:04) #83907 解決済み
│    ├ Re[4]: 構造体の入れ子 / 魔界の仮面弁士 (17/04/21(Fri) 13:22) #83909 解決済み
│    └ 構造体の入れ子 / 大谷刑部 (17/04/21(Fri) 18:27) #83912 解決済み ←Now
Re[1]: 構造体の入れ子 / Jitta (17/04/24(Mon) 19:35) #83922 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信