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

コレクション

分類:[.NET]

Dim Ary(10) As Class1

とした場合、
Class1 の中から、自分のインデックス(i)と
自分(Ary(i))の隣インスタンス(Ary(i+1))
を簡単に参照することが出来ますか
  • 題名: Re[1]: コレクション
  • 著者: よねKEN
  • 日時: 2003/08/10 16:45:24
  • ID: 298
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
> Dim Ary(10) As Class1

タイトルはコレクションとなっていますが、
これは配列ですね。

> Class1 の中から、自分のインデックス(i)と
> 自分(Ary(i))の隣インスタンス(Ary(i+1))
> を簡単に参照することが出来ますか

Class1が配列として使われるかどうかは
クラス設計時にはまったく想定できませんので、
Class1のあるインスタンスから隣のインスタンスを扱うことはできません。
#というか「隣の」という概念はそのクラス自身には持てません。

Class1を集約する独自のコレクションクラスを作成されてはいかがですか。
そうすれば「隣の」インスタンスのような考え方を導入することもできます。

TreeViewコントロールで使われているTreeNodeクラスなんかが
そういったデータ構造を実現していますね。
> Dim Ary(10) As Class1
>
> とした場合、

「自分」を仮にobjとすると、一応、

Ary(Array.IndexOf(Ary,obj) + 1)

で「隣の」インスタンスを取り出すことは可能だと思いますが、
書き方も処理もあまりスマートでは無いですね。
(それに1次元限定)
おすすめはしません。

インデックスの方はともかく、「隣の」インスタンスを取る処理に
関しては、やはり、よねKENさんの書かれているように
独自クラスで実装する方法が最終的には得かと思います。
  • 題名: Re[2]: コレクション
  • 著者: DEG
  • 日時: 2003/08/12 15:05:08
  • ID: 315
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
よねKENさん、丸太さん

現在コレクションクラスから、

Dim Ary(10) As Class1
Ary(i).Method(Ary(i + 1).Property)

のような形で、Class1のメソッドを利用しています

常に隣のインスタンスのプロパティを必要とするので
引数を省略できたら、間違いがなくてよいと思ったのです

お2人のご意見からすると、やはり無理なようなのであきらめます

このような、メソッドはコレクションクラスのメソッドと
するべきだったのかもしれませんね

ありがとうございました

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