たとえば、基本クラス がありEntity
、次に、これから派生する 2 つのサブクラスがLightEntity
ありPlayerEntity
ます。
次に、s とsList<Entity> Entities
を保持する a があります。LightEntity
PlayerEntity
LightEntity
からすべての sを取得したいEntities
。
私は試した:
List<LightEntity> lights = new List<LightEntity>();
foreach (Entity ent in Entities)
{
if(ent is LightEntity)
{
lights.Add(ent);
}
}
Entity
しかし、コンパイラは、 のリストにだけを追加しようとする可能性があるとまだ考えているように見えるので、これは好きではありませんLightEntity
。
にキャストしようとしましent
たLightEntity
が、コンパイラは、 を に変換する方法がないと言っていEntity
ますLightEntity
。