タイトル : 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 では、「引数無しのコンストラクタ」の扱いが異なることに注意) |