まあ、言葉で説明するのは難しいです。だからここに例があります。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;
}
}
では、どうすればSpriteCollectionwith Tilesを使用しても、次のTileような排他的プロパティを使用できるようになりSolidますか?
1つの(おそらくばかげた)解決策はおそらくこれでしょう:
Tile t = (Tile) myCollection[i];
if (t.Solid) { ... }
このようなことをするためのより良い方法はありますか?