DOBON.NET DOBON.NETプログラミング掲示板過去ログ

違うクラスをコンテナに追加読み出ししたいのですが!

環境/言語:[XP C# .NET2003]
分類:[.NET]

環境VS.NET2003PRO、XP、C#

interface IA
{
void a(int x);
}
class B:IA
{
}
class C:IA
{
}
ArrayList al = new ArrayList();
al.Add(new B());
al.Add(new C());
の場合以下はできませんよね。
al[0].a(1);
al[1].a(2);
以下の様に
B b1= (B)al[0];
C c1= (C)al[1];
b1.a(1);
c1.a(2);
のようにどのクラスかを知ってキャストしなければ
いけませんよね。
何かクラスを意識せずにプログラムする方法はありませんか?
IA型にキャストすれば万事解決ですね。
■No16285に返信(Hongliangさんの記事)
Hongliang さんありがとうございます。
> IA型にキャストすれば万事解決ですね。

すみませんIA型ってなんですか?どこか参考になるところありますか?
■No16286に返信(シュリンプバーガーさんの記事)
> すみませんIA型ってなんですか?
> どこか参考になるところありますか?

■No16284に返信(シュリンプバーガーさんの記事)
> interface IA
> {
> (snip)
> }

[↑] IA 型のインターフェイスです。
じゃんぬねっとさんありがとうございます。
> ■No16284に返信(シュリンプバーガーさんの記事)
>>interface IA
>>{
>>(snip)
>>}
>
> [↑] IA 型のインターフェイスです。
自分でサンプルコード書いておきながら忘れてました。
以下で解決しました。ありがとうございます。

IA b1= (IA)al[0];
IA c1= (IA)al[1];
解決済み!
2006/06/19(Mon) 08:19:34 編集(投稿者)

追伸
 だからinterfaceなんですね!
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板