アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。VB2003でご質問があります。

通常Arryalistでは下記例1のように使用するのが一般的だと思うのですが、例2のようにArryaListにクラスを追加し、その中のメンバを呼び出すにはどのようにコーディングすればよいのでしょうか?
コメントのコンパイルエラー箇所の部分です。
お手数ですが、ご教授よろしくお願いいたします。

*******************************************
(例1)
Dim Test as new ArrayList
Test.ADD("テスト")
console.writeline(test(0))
*******************************************

*******************************************
(例2)
Public Class A
public strA as string

public sub subTest()
strA = "おはよう"
end sub

End Class

Public Class B
Dim a as new ArrayList

a.Add(new A)
a(0).subTest '--コンパイルエラー箇所
console.writeline(a(0).strA) '--コンパイルエラー箇所

End Class
*******************************************

A 回答 (2件)

ArrayListから取り出したものはすべてオブジェクト型です


適切な型にキャストしてから使用してください

Dim a as new ArrayList
a.Add(new A)
CType(a(0), A).subTest
console.writeline(CType(a(0), A).strA)
    • good
    • 2
この回答へのお礼

すばやいご回答ありがとうございます。
◎ArrayList(オブジェクト型)⇒適切な型にキャストしてから使用する、ピンポイントのご回答でした。

Dim b as A
Dim a as new ArrayList
a.add(new A)
b = a(0)
b.subTest
console.writeline(b.strA)

これでもご指摘頂いた、回答と同様ですね。
なかなかWebを調べても、質問内容と同件のArrayListの使用例がなかったところで困っていました。
大変助かりました。どうもありがとうございました。

お礼日時:2007/10/29 11:30

.NET 1.1でDirectCastに対応しているかわからないけど,



http://okwave.jp/qa3396774.html

と同じ話かな?

ちなみにGeneric.Listは.NET 2.0以降でないと使えなかったと思う

#できればClassBもちゃんとPublic Sub hoge() ~ End Subとか書いてほしい
    • good
    • 0
この回答へのお礼

すばやいご回答ありがとうございます。
参考URLと同件の質問でした。
DirectCastやGenericListなど参考になりました。
※ClassB内にプロシージャを記載するのが漏れてましたね。ご指摘ありがとうございます。

お礼日時:2007/10/29 11:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!