tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: 構造体配列の初期化
投稿日: 2012/05/22(Tue) 12:33
投稿者魔界の仮面弁士
> Public STR(0 To 32) As Type_Struct
> Public Structure Type_TM_Struct
Type_TM_Struct の宣言はありますが、
Type_Struct の宣言はどこでしょうか?

また、VB には標準で「Str 関数」というものがありますので、
「STR」という変数名を採用することはお奨めできません。


> のメッセーじがでます。
エラーの理由は、ST2 が Nothing の状態で、ST2(0) を操作しようとしたためですね。


> 恐らく何か不足していると思うのですが、何方かお願いします。
利用する前に、Initialize メソッドを呼び出すようにしてやれば OK です。
(このメソッドが、自動的に呼び出されることはありません)


また、配列の初期化を強制したい場合には、Structure の代わりに
Class を利用することを検討してみてください。

クラスであれば、フィールドメンバーの宣言を
 Public ST2(6) As String
のように記述することができます。

ただしクラスにした場合、利用側は (New Type_Struct() などで)
インスタンスを生成してから利用する必要があります。


上記の他、Class/Structure にコンストラクタ(Sub New)を作って
そこに Initialize 相当の初期化処理を組み込むという手もあります。
(Class と Structure では、「引数無しのコンストラクタ」の扱いが異なることに注意)

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。