たとえば、基本クラス がありEntity、次に、これから派生する 2 つのサブクラスがLightEntityありPlayerEntityます。
次に、s とsList<Entity> Entitiesを保持する a があります。LightEntityPlayerEntity
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。