まあ、言葉で説明するのは難しいです。だからここに例があります。SDL .NET APIにSpriteCollection
は、スプライトのコレクションになるように設計されたというクラスがあります。ただし、問題は、何らかの理由で、開発者が.NETクラスSpriteCollection
のように汎用を作成しないことを決定したことです。List<>
だから、私は推測します、それはSprite
クラスまたはから継承する他のクラスでのみ機能することができSprite
ますか?Tile
とにかく、私がから派生したとしましょうSprite
。そして、それに2つの新しいプロパティを追加します。
class Tile : Sprite
{
public Tile(char symbol = default(char), bool solid = true)
{
Symbol = symbol;
Solid = solid;
}
public char Symbol
{
get;
set;
}
public bool Solid
{
get;
set;
}
}
では、どうすればSpriteCollection
with Tile
sを使用しても、次のTile
ような排他的プロパティを使用できるようになりSolid
ますか?
1つの(おそらくばかげた)解決策はおそらくこれでしょう:
Tile t = (Tile) myCollection[i];
if (t.Solid) { ... }
このようなことをするためのより良い方法はありますか?